标签下方的空白区域脚本标记和链接标记位于head标记的body标记下

时间:2010-10-02 16:52:38

标签: php html utf-8 smarty byte-order-mark

alt text

alt text

嘿伙计们,我用php + smarty编写了一个php应用程序。

当我在firebug中查看网络源代码时,我发现链接标记和脚本标记位于 body 标记下。 但我应该在 head 标签下。

body 标记下方有一些空格。

我的网页顶部有空格

那么,问题是什么?

4 个答案:

答案 0 :(得分:6)

<head>标记之前的<link>内有一些流​​浪文字内容。浏览器会看到文本并确定这意味着您正在启动主文档正文但忘记包含<body>标记。

这实际上是有效的 - 如果不可取 - 在HTML4中:<head>结束标记和<body>开始标记都是可选的。这就是您可以将<html><head><title>x</title>Hello!作为有效的HTML文档的方法。但是在XHTML中是不允许的,所以如果你validate your document,你应该得到一个“此处不允许使用字符数据”错误。

然后,浏览器将文档的其余部分解析为正文内容,将<link>放在正文中(有效,但这是常见的)。当它出现时它会忽略真实的<body>,因为它已经有了一个体。

如果你看不到迷路文字,也许它是一个看不见的字符,比如U + 00A0无休息空间 或者 - 最有可能是中文文件-U + 3000表意文字空间 ,在某些输入法模式下按空格键时可能会得到的结果。这些字符将不可见,但它们不像普通的U + 0020空格或换行符那样“可忽略空白”,因此它们会触发“文本内容”处理并强制<body>

答案 1 :(得分:1)

空格,特别是在网页开头的空格通常是因为文件以UTF-8格式(包含BOM)保存。如果您使用的是Notepad ++或Vim等编辑器,请将文件保存为UTF-8格式,不含BOM。

答案 2 :(得分:0)

添加以下CSS:

html, body
{
    padding: 0px;
    margin: 0px;
}

答案 3 :(得分:0)

通过验证器(http://validator.w3.org/)发送您的HTML - 它会告诉您在那里发生了什么样的错误(缺少结束标记或其他内容)。