<分区>
我想知道是否应该为标记语言操心,只要我生成有效的标记即可。
我读过指出 HTML 是最佳选择的文章,它们直接来自马口(浏览器实现者!):
James Bennet 的其他文章提出了另一个观点,即如果您不以 XML 的形式提供 XHTML,那么您需要的不是 XHTML,而是 HTML。
所以我想,如果我想触发标准兼容模式,我应该只使用 HTML 严格验证。但至少对于大多数现代浏览器(除 IE6 之外的所有浏览器)情况已不再如此:如果您拥有有效的 XHTML Strict,您仍然会触发标准兼容模式,因此,只要我生成有效的标记,何必呢?
我暂时一直严格使用HTML 4.01。 HTML 5 尚未确定。我曾经是一个顽固的 XHTML 用户,但我的理由已经消失,我变得更快乐、更有效率。
XHTML 的争论通常倾向于“更清晰的标记”或谈论格式正确的标记。这看起来主要是一个稻草人的论点,并且在彻底的殴打下站不住脚。
如果 XHTML 保证被 XML 解析器解析,它通常看起来不会比 HTML 4.01 strict 更干净(只是比较 strict 文档类型)。
一方面,必须将 URL 写成 http://example.com/?foo=bar&baz=qux
看起来很尴尬。声明实体类型已经过时了。
另一件事是,标记通常不能很好地转换为 XML 树,但 Dom 树很好。
HTML 4.01 strict 更易于使用和创建有效站点。您不必在 、
或 等元素上放置无意义的结束标记。仅放置反斜杠不会改变任何特定含义。
Yahoo and everything markupy 的 Douglas Crockford 表示,最好将标记视为一种应用程序交付格式。
因此,什么将是最容易交付的,并且更加稳健和可靠。这就是我最终做出决定的原因。所有 Web 浏览器都以不同方式处理 XHTML,并且需要修改 Content-type header 。如果您使用“text/xhtml”或“text/xml”,您会得到不同的结果。
此外,“text/xml”不能很好地与 REST 一起使用,因为这应该意味着数据的 XML 序列化,不是格式化标记页面(在我看来,Safari 弄错了这一点,通过在 text/html 之前请求 text/xml 作为所需的内容类型!)
因此,使用 HTML 4.01 是因为:
- 它在所有浏览器上的工作方式更加相似
- 不需要基于内容类型的处理(text/html 可以全面解决问题)
- 不像 XHTML 那样脆弱
- HTML 5 没有提供任何比 HTML 4.01 严格的重要内容