我想知道我是否应该对标记语言感到烦恼,只要我生成有效的标记。
我读过的文章指出HTML是最好的选择,它们直接来自马的口(浏览器实现者!):
James Bennet的其他文章提出了另一个观点,即如果你不是以XML格式提供XHTML,那么你不需要XHTML而是HTML。
所以我想如果我想触发标准兼容模式,我应该只使用HTML严格验证。但至少在最现代的浏览器(即除IE6之外的所有浏览器)中情况就不是这样了:如果你有有效的XHTML Strict,你仍会触发标准兼容模式,因此,只要我生成有效的标记,为什么要这么麻烦?
答案 0 :(得分:23)
我总是暂时使用HTML 4.01严格。 HTML 5尚不确定。我曾经是一个顽固的XHTML用户,但我的理由已经消失了,我更开心,更有成效。
XHTML的论据通常倾向于“更清晰的标记”或谈论格式正确的标记。这似乎就像一个稻草人的争论,并没有在彻底的殴打下坚持下去。
如果XHTML保证由XML解析器解析,它通常看起来不会比HTML 4.01严格(仅比较严格的doctypes)。
首先,必须将URL写为http://example.com/?foo=bar&baz=qux
看起来很尴尬。声明实体类型变旧。
另一件事是标记通常不能很好地翻译为XML树,但是Dom树很好。
HTML 4.01 strict更容易使用并创建有效的网站。您不必在像< img>,< br>这样的元素上放置无意义的结束标记。或者< link>。只需添加反斜杠就不会改变任何特定含义。
雅虎的道格拉斯·克罗克福德(Douglas Crockford)表示,最好将标记视为一种应用程序交付格式。因此,什么是最容易交付,更强大和可靠。这是我最终做出的决定。所有Web浏览器都以不同方式处理XHTML,并且需要重新设置Content-type标头。如果使用“text / xhtml”或“text / xml”,则会得到不同的结果。
此外,“text / xml”与REST不能很好地兼容,因为这应该意味着数据的XML序列化和不格式化的标记页面(Safari认为这个错误,在我看来,通过在text / html之前请求text / xml作为所需的内容类型!)
因此,请使用HTML 4.01,因为:
答案 1 :(得分:4)
选择一个并坚持下去,并在遇到其他限制时尽可能顺从。但是,不要认为HTML和XHTML比完成工作和网站启动和运行更重要,因为这将带来收入。用户不会对XHTML进行折腾。
答案 2 :(得分:4)
如果你去xhtml,请选择xhtml 1.0,不 xhtml 1.1,除非你打算用正确的xml或xhtml mimetype提供它。实际上,在第二个想法,也不要这样做。使用正确的mimetype服务xhtml 1.0或1.1存在巨大的弊端。最轻微的错误,你得到死亡的黄色屏幕!
w3c规范说只要你遵循某些向后兼容规则(主要是在自闭标签中,在/正斜杠之前包含一个空格),就可以将xhtml 1.0作为text / html提供服务。
除此之外还有其他论据/反对。我倾向于使用xhtml,因为可用的各种工具和库可以解析有效的xml,使xslt变换成为/从xhtml可能的思考。 (有用吗?)。
另一个原因是可以在flash中解析有效的xml,因此您可以选择xhtml以使用flash影片替换动态内容,或者将xhtml内容动态加载到flash影片中。或者说,任何可以读取xml的东西都可以读取xhtml。这是很多事情。
答案 3 :(得分:2)
我的建议是使用HTML4 Strict或HTML5。在标准模式下,使用CSS进行布局是有效的。您将获得与XHTML通常相关的所有好处,但没有任何问题。
请记住: XHTML DOCTYPE无法将文档解析为XHTML 。它只支持标准模式,与HTML 4 Strict和HTML 5相同。
document.write
和innerHTML
。如果没有在HTTP标头中设置正确的XML MIME类型(而不是文档本身),您只需将所有内容解析为HTML和HTML DOM。
在所有(包括IE8)的Internet Explorer 中仍然不支持XHTML。你在IE(和Googlebot)中获得的最好的是XHTML 误解为为HTML ,语法错误(无论是70%还是30%的受众,它仍然需要思考约)。
Try forcing "XHTML" websites to use actual XML mode,您很快就会注意到几乎没有人使用XHTML。他们只是在HTML上打错了DOCTYPE:
这些“XHTML”页面的工作原理仅仅是因为它们通常被解释为HTML。
答案 4 :(得分:1)
我会选择xHTML,主要是因为代码更清晰,更易于维护。
但是,为什么不使用xhtml http://meiert.com/en/blog/20081219/html-vs-xhtml/
,这里有一些有趣的观点答案 5 :(得分:0)
如果你真的不关心粗略的支持,请尝试HTML 5.我的后备将是HTML 4.01 Strict,除非我需要类似内联SVG或类似的东西,在这种情况下它是XHTML(作为XML)。
答案 6 :(得分:0)
在大多数情况下,没关系。事实上,使用XHTML会引起更多头痛。但是,有一些情况需要XHTML。我能想到两个。
首先,如果你想使用嵌入式SVG,你需要XHTML。
其次,如果要将HTML标记用作XML。有时(原因不明),我发现即使我将其标记为html或文本,我的AJAX请求也会验证代码。为了快速避免这种情况,我将其更改为XHTML。
就是这样。