有必要写<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正确分离头部和 body :
W3C validator说它是有效的。
但我很少在网上看到这种做法。
写这些标签有什么理由吗?
最佳答案
省略 html
、head
和 body
tags 当然是 HTML 规范允许的。根本原因是浏览器一直在寻求与现有网页保持一致,而 HTML 的早期版本并没有定义这些元素。当 HTML 第一次这样做时,它是以一种在缺少标签时会推断出标签的方式完成的。
我经常发现在原型(prototype)设计时省略标签很方便,尤其是在编写测试用例时,因为它有助于使标记专注于有问题的测试。推理过程应该完全按照您在 Firebug 中看到的方式创建元素,并且浏览器在这方面非常一致。
但是……
Internet Explorer在这方面至少有一个已知的错误。偶Internet Explorer 9展示了这一点。假设标记是这样的:
<!DOCTYPE html>
<title>Test case</title>
<form action='#'>
<input name="var1">
</form>
您应该(并且在其他浏览器中这样做)获得 DOM看起来像这样:
HTML
HEAD
TITLE
BODY
FORM action="#"
INPUT name="var1"
但是在 Internet Explorer 中你会得到这个:
HTML
HEAD
TITLE
FORM action="#"
BODY
INPUT name="var1"
BODY
See it for yourself.
此错误似乎仅限于任何文本内容和任何 body
开始标记之前的 form
开始标记。
https://stackoverflow.com/questions/5641997/