看到这个问题:归根结底,为什么选择 XHTML 而不是 HTML?
但所有的答案都是从2009年开始的。从消亡的XHTML 2.0到现在的XHTML5,目前的共识是什么?现在有什么真正的理由使用(或不使用)XHTML 吗?
问题不是关于 HTML 与 XHTML 的问题,而是关于 HTML 解析器与 XML 解析器的问题。
假设您提供了带有 XHTML 标头的页面,媒体类型/mime 为application/xhtml+xml。唯一不支持 XHTML 的值得注意的浏览器版本是 Internet Explorer 8,但是如果您在 2017 年或之后阅读本文(本文于 2017 年 10 月发布),则即使 IE11 也几乎没有相关性。所以浏览器支持不再是考虑因素。Internet Explorer 5 在技术上确实有一个 XML 解析器,尽管它只能识别application/xml媒体类型/mime。
一旦您通过了浏览器支持,正确的问题是:HTML 解析器和 XML 解析器之间有什么区别?我遇到过赚了六位数的开发人员,但他们不知道 XML 解析器是什么。解析器通常接受代码并创建数据结构;在这两种情况下都是 DOM(文档对象模型)。如果两者产生相同的 DOM 那么为什么会有差异以及为什么它很重要?
XML 解析器是严格的。如果你住在“XML 社区”,你必须每两周割一次草,你必须在下午 6 点之前把垃圾桶放进去,即使在你的车库里也不能有无法使用的汽车,而且邻居的老奶奶会定期在街道上巡逻以检查是否有任何垃圾。敢于停下来徘徊几秒钟的朋克青少年。
HTML 解析器并不严格。如果你住在“HTML 社区”,你可以让你的草坪像亚马逊雨林一样,在路边一次收集成堆的垃圾长达数月,不能使用的汽车一半停在草坪上,一半停在你的客厅里。房间里和一群喝醉的流浪汉成群结队地在附近游荡。
当然,有很多网站使用符合标准的 HTML 构建,但绝大多数文本/html 网站的质量为中等到低。没有值的属性和未编码或编码不正确的实体是几个简单的示例。
如果您的目标是获得最好的结果,您将需要使用 XHTML5 进行编码。具体来说:您将使用通过 XML 解析器呈现的 HTML5。Gecko (Firefox / Waterfox) 会破坏整个页面并给您一条错误消息。有些人真的不喜欢它,但我喜欢它。如果您不知道该问题,则不会指望您会解决它。其他引擎(Presto /(real)Opera、Blink / Chrome、WebKit / Safari)将渲染至解析错误。
总会有一些反对者在心理上决定忽视客观性,并盲目地相信做他们认识的其他人正在做的事情本质上是优越的,因为利己主义比客观性更重要。但是,如果您没有陷入这种错误的观念,并且想要提高编程能力,更快地从错误中恢复并了解大多数人不具备的概念,那么我建议您获得大多数其他设计人员/开发人员所没有的优势尽可能严格地使用 XML 解析器和编码。计算机只能帮助您按照您决定的水平进行生产。
| 归档时间: |
|
| 查看次数: |
2190 次 |
| 最近记录: |