之前谈过doctype的问题,被忽视的DOCTYPE,最末说了提倡使用,最简洁明了且是标准模式。
但是最近发现使用这种方式会产生问题,见代码:
代码如下:
<!DOCTYPE HTML>
<html>
<head>
<title>test page</title>
</head>
<body>
<p><div>a</div></p>
</body>
</html>
这段代码假如用w3c markup validation检测,发现是能通过验证的,因为html5验证还处于实验阶段,所以并未检测出不合法的地方。
但是假如使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,你就会发现未验证通过。
原因是p这个标签比较特殊,是不能包含block标签的。看来过早的使用一些实验性特性也会带来问题,安全起见,还是提倡使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">。