无法在页面源中查看。这是正常的吗?

时间:2016-08-18 11:29:26

标签: html

这是页面源的样子:

<link rel="stylesheet" href="http://...">
<!-- analytics -->
<script>
...

结尾</head>代码和<body>代码应位于<link rel=<!-- analytics -->之间。

该网站似乎工作正常,但我想知道这是否正常,是否会以某种方式对其产生负面影响。

2 个答案:

答案 0 :(得分:1)

在某种意义上,headbody的开始和结束标记可能会被部分或完全省略,这是正常的。自HTML的最早版本以来就是这种情况,并且在HTML5中没有改变。

但有时您放置</head><body>标签的位置可能会有所不同。在您的情况下,注释后面的元素是script元素。现在,script元素将放在页眉中,而不是页面正文,因为script元素可能出现在任一元素中,如果出现script元素的地点不是t已经在body元素的上下文中(例如,因为已经遇到了可能只出现在文档正文中的元素,这不是这里的情况),然后script元素被放置在默认情况下头部而不是身体。请参阅HTML5的8.2.5.4.4 The "in head" insertion mode8.2.5.4.7 The "in body" insertion mode部分。

您是否将</head><body>标记放在您期望的位置:

<link rel="stylesheet" href="http://...">
</head>
<body>
<!-- analytics -->
<script>
...

然后script元素将显示为body的第一个子元素,而不是head的最后一个子元素。这可能会影响很多事情,例如您可能碰巧在CSS中遇到的任何body > :first-child选择器,您希望其他而不是script第一个孩子。由于我们讨论的是script元素,如果您的脚本需要document.body才能工作,并且由于某种原因它不在DOMContentLoaded事件处理程序中,那么它如果它在页面头部,将无法正常工作

答案 1 :(得分:0)

通过验证器http://validator.w3.org运行它一些现代浏览器“自动完成”这些东西,但你的标记应该是语义的。较旧的浏览器可能不喜欢它。