这是页面源的样子:
<link rel="stylesheet" href="http://...">
<!-- analytics -->
<script>
...
结尾</head>
代码和<body>
代码应位于<link rel=
和<!-- analytics -->
之间。
该网站似乎工作正常,但我想知道这是否正常,是否会以某种方式对其产生负面影响。
答案 0 :(得分:1)
在某种意义上,head
和body
的开始和结束标记可能会被部分或完全省略,这是正常的。自HTML的最早版本以来就是这种情况,并且在HTML5中没有改变。
但有时您放置</head>
和<body>
标签的位置可能会有所不同。在您的情况下,注释后面的元素是script
元素。现在,script
元素将放在页眉中,而不是页面正文,因为script
元素可能出现在任一元素中,如果出现script
元素的地点不是t已经在body
元素的上下文中(例如,因为已经遇到了可能只出现在文档正文中的元素,这不是这里的情况),然后script
元素被放置在默认情况下头部而不是身体。请参阅HTML5的8.2.5.4.4 The "in head" insertion mode和8.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运行它一些现代浏览器“自动完成”这些东西,但你的标记应该是语义的。较旧的浏览器可能不喜欢它。