但是最近发现使用这种方式会产生问题,见代码:

复制代码代码如下:
<!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://imgbuyun.weixiu-service.com/up79/202309/rb0ir01tzal.dtd"%3b>%3b%ef%bc%8c%e4%bd%a0%e5%b0%b1%e4%bc%9a%e5%8f%91%e7%8e%b0%e6%9c%aa%e9%aa%8c%e8%af%81%e9%80%9a%e8%bf%87%e3%80%82

原因是p这个标签比较特殊,是不能包含block标签的。看来过早的使用一些实验性特性也会带来问题,安全起见,还是提倡使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://imgbuyun.weixiu-service.com/up79/202309/ir1gwqvhdpj.dtd"%3b>%3b%e3%80%82

doctype的markup validation