是否需要编写 <html>
、 <head>
和 <body>
标签?
比如我可以制作这样一个页面:
<!DOCTYPE html>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Page Title</title>
<link rel="stylesheet" type="text/css" href="css/reset.css">
<script src="js/head_script.js"></script><!-- this script will be in head //-->
<div>Some html</div> <!-- here body starts //-->
<script src="js/body_script.js"></script>
并且 Firebug 正确地将头部和身体分开:
W3C 验证器 说它是有效的。
但是我很少在网上看到这种做法。
写这些标签有理由吗?
原文由 Larry Foobar 发布,翻译遵循 CC BY-SA 4.0 许可协议
HTML 规范当然允许省略
html
、head
和body
_标签_。根本原因是浏览器一直在寻求与现有网页保持一致,而 HTML 的早期版本并没有定义这些元素。当 HTML 第一次这样做时,它是以一种在标签丢失时进行推断的方式完成的。我经常发现在制作原型时省略标签很方便,尤其是在编写测试用例时,因为它有助于使标记专注于所讨论的测试。推理过程 应该 完全按照您在 Firebug 中看到的方式创建元素,并且浏览器在这样做时非常一致。
但…
Internet Explorer 在这方面至少有一个已知错误。甚至 Internet Explorer 9 也展示了这一点。假设标记是这样的:
你应该(并且在其他浏览器中做)得到一个看起来像这样的 DOM :
但是在 Internet Explorer 中你会得到这个:
你自己看看吧。
此错误似乎仅限于
form
任何文本内容之前的开始标记和任何body
开始标记。