2011-05-26 51 views
2

HTML doctypes是否可以保证正式解析?HTML doctypes保证正式解析吗?

例如,如果我使用特定的DOCTYPE,然后生成非常糟糕的HTML,这是否会强制浏览器恢复到怪癖模式或保证解析为DOCTYPE?

编辑:这也包括CSS行为。

回答

1

HTML doctypes是否保证正式解析?

你将很难找到一个浏览器,将解析使用在任何情况下SGML规则。

XHTML 内容类型将触发一些浏览器使用XML规则解析。

大多数浏览器将使用他们自己的标记汤姆分析器或任何文本/ html文档的HTML 5算法。

例如,如果我使用特定的DOCTYPE,然后生成非常糟糕的HTML,这将强制浏览器恢复到怪癖模式或保证解析到DOCTYPE?

怪癖模式与解析很少有关系。主要是关于如何解释CSS。

怪癖/标准/几乎标准/等模式之间的选择几乎完全由Doctype处理。例外情况是有一个XHTML MIME类型(这将强制一些浏览器进入标准模式,无论Doctype是什么)和(对于MSIE)X-UA兼容的HTTP标头和<meta>数据。

0

只要文档类型是一个公认的有效的文档类型,那么是的,你应该保证在标准模式而不是怪癖模式。

怪癖模式不是渲染质量差的HTML代码;它的存在是因为这是旧版浏览器(例如IE5)的唯一渲染模式,并且当新浏览器出现时(IE6),他们希望支持新标准模式,但也需要向后兼容。

那些较旧的浏览器不知道doctypes,因此浏览器制造商想出了如果你指定了doctype,你必须期望在新的浏览器中,因此期待标准模式。尽管如此,如果您的HTML代码质量不好,那么无论您处于标准模式还是怪癖模式都无关紧要 - 浏览器仍然需要解决如何处理您的问题标记汤,而且不管浏览器模式如何,你都可能在不同的浏览器中获得不同的结果。