我使用 php+smarty 编写了一个 php 应用程序。
当我在 firebug 中查看 web 源代码时,我发现link标签和script标签位于body标签下。但它应该在head标签下。
身体标签下方有一些空间。
我的网页顶部有 空白区域。
问题是什么?
我使用 php+smarty 编写了一个 php 应用程序。
当我在 firebug 中查看 web 源代码时,我发现link标签和script标签位于body标签下。但它应该在head标签下。
身体标签下方有一些空间。
我的网页顶部有 空白区域。
问题是什么?
在标签<head>
之前的 ,中有一些杂散的文本内容。<link>
浏览器看到文本并确定这意味着您正在启动主要文档正文但忘记包含<body>
标记。
这在 HTML4 中实际上是有效的(如果不建议的话):<head>
结束标记和<body>
开始标记都是可选的。这就是您如何拥有<html><head><title>x</title>Hello!
一个有效的 HTML 文档。但它在 XHTML 中是不允许的,因此如果您验证您的文档,您应该会在出现杂散文本时收到“此处不允许字符数据”错误。
然后浏览器将文档的其余部分解析为正文内容,将正文放入<link>
正文中(这是无效的,但仍然很常见)。当它出现时它会忽略真实<body>
,因为它已经有一个身体。
如果你看不到杂散的文字,可能是一个不可见的字符,比如 U+00A0 不间断空格
,或者——最有可能是中文文档——U+3000 表意空格
,在某些输入法模式下按空格时可能会出现这种情况. 这些字符将不可见,但它们不像普通的 U+0020 空格或换行符那样是“可忽略的空白”,因此它们会触发“文本内容”处理并强制<body>
.
空格,特别是网页开头的空格,通常是因为文件以 UTF-8 格式(包含 BOM)保存的。如果您使用的是 Notepad++ 或 Vim 等编辑器,请将文件保存为不带 BOM 的 UTF-8 格式。
添加以下 CSS:
html, body
{
padding: 0px;
margin: 0px;
}
通过验证器 ( http://validator.w3.org/ ) 发送您的 HTML - 它会告诉您您在其中遇到了什么样的错误(缺少结束标记或其他东西)。