我想知道为什么我应该使用XHTML而不是HTML.
XHTML应该是"模块化的",但我没有看到任何服务器端语言利用其中的任何一种.
XHTML也更严格,我没有看到优势.XHTML提供了什么,我需要这么糟糕?它如何使我的代码"更好"?
编辑:我在评论中发现的另一个问题:XHTML解析速度比HTML快吗?
EDIT2:在阅读完所有评论和链接后,我确实同意另一篇文章应该是正确的答案,所以我选择了直接链接到最佳来源的帖子.
此外,表明人们甚至没有阅读它就赞成绿色评论.
Jam*_*hon 44
您应该阅读Beware of XHTML,这是一篇内容丰富的文章,警告XHTML对HTML的一些缺陷.
在我阅读它之前,我对XHTML很满意,但它确实提出了几个有效点.包括以下位;
XHTML 1.x不是"未来兼容".目前处于起草阶段的XHTML 2与XHTML 1.x不向后兼容.XHTML 2将对文档的编写和结构方式进行大量的重大更改,即使您已经使用XHTML 1.1编写了站点,通常也需要完整的站点重写才能将其转换为正确的XHTML 2.在大多数情况下,XSL转换是不够的,因为某些语义将无法正确转换.
HTML 4.01实际上更具未来兼容性.写入现代支持级别的有效HTML 4.01文档将是有效的HTML 5,HTML 5是大多数注意力来自浏览器开发人员和W3C的地方.
在处理某些项目时,未来的兼容性可能会很大.这篇文章继续提出其他几个好点,但我认为这对我来说可能是最突出的.
不要误以为该文章是针对XHTML的咆哮,作者确实谈到了XHTML的优点,但在潜入之前了解这些缺点是很好的.
Jam*_*s B 37
我打算将其添加为对其他帖子的评论,但它有点过大.
大多数人似乎缺少的基本点是XHTML背后的目的.开发XHTML规范的一个主要原因是在标记中不再强调与表示相关的标记,并将表示推迟到CSS.虽然可以使用纯HTML实现此分离,但规范不会促进此行为.
分离元标记和演示是开发"可编程网络"的重要部分,不仅可以改善搜索引擎优化,访问屏幕阅读器/文本浏览器,还可以使您的网站更容易被希望分析的人分析.以编程方式访问它(在许多简单的情况下,这可以消除开发特定API的需要,甚至只允许客户端脚本执行诸如容易识别电话号码之类的事情).如果您的网页符合XHTML规范,则可以使用与XML相关的工具以及XPath之类的东西轻松遍历它......这对于想要从您的网站中提取特定信息的人来说是个好消息.
XHTML并非开发用于自身,而是与各种其他技术一起使用.它在很大程度上依赖于使用CSS进行演示,并为微格式(无论您喜欢它们还是讨厌它们)等事物奠定了基础,以便为常见的数据表示提供标准化标记.
不要被那些认为XHTML微不足道的人群所愚弄,并且只是过度限制和毫无意义......它的创建目的是95%的世界似乎忽视/不知道.
无论如何都要使用HTML,但要将它用于它的优点,并在查看XHTML时采用相同的方法.
关于解析速度,我想在XHTML和HTML之间解析实际文档时几乎没有什么区别.权衡取决于您使用可用标记描述文档的方式.由于必需的属性,正确的关闭等,XHTML标签往往更长,但是放弃了文档本身中任何表示性标记的需要.在这种情况下,我认为你在谈论比较一种类型的苹果,与一种非常不同类型的苹果...它们是不同的,但它不太可能有任何后果(在解析和渲染方面)当你想要的只是一个健康,美味的苹果.
Joe*_*oey 17
对于网站的访问者来说,它可能没有任何明显的区别.此外,XHTML通常更难以使用,因为至少有一个广泛使用的浏览器仍然不知道如何处理它,在这种情况下你需要将它作为text/html提供(这会产生无效的HTML).
如果您的HTML将由自动化工具定期处理而不是由人类阅读,那么您可能希望使用XHTML,因为它更严格的结构和XML更容易解析(从应用程序的角度来看.不是说XML是虽然这本身很容易解析.
除此之外,我没有看到使用它的任何令人信服的理由.XHTML的创建方法是利用HTML的XML功能,基本上归结为"HTML 4带有几个烦人的副作用"(至少恕我直言).
Kor*_*nel 13
使用HTML(HTML4严格或HTML5).
HTML可以充分利用CSS,可以明确地验证和解析.已经在HTML4和XHTML中完成了结构和表示的分离.
所有浏览器都支持HTML.只有一些浏览器支持XHTML和那些支持XHTML的浏览器,它们通常具有更成熟,更好的测试和优化的HTML支持(这是由于很少一部分页面使用XML模式).
如果您关心IE和Google,则必须使用XHTML规范附录C中定义的HTML或XHTML和HTML子集.后者几乎是两个世界中最糟糕的,因为这样的XHTML不能使用标准XML工具生成,不能使用XHTML新增的扩展机制,并且与单独的HTML相比具有额外的限制.
XHTML1.0现已超过10年,它在"Web1.0"时代设计,并且作为W3C的负责人说,回想起来它没有成功,需要更好的方法.W3C HTML5是在我们发言时编写的,它解决了当今使用的Web应用程序的需求,并具有非常好的向后兼容性.
HTML5弥补了HTML4和XHTML1之间的许多空白(例如添加了内联SVG,MathML i RDF),清除了XHTML1.0和XHTML1.1之外的语言.
在可预见的未来,Web浏览器不会支持XHTML2.它可能永远不会得到支持(所有浏览器厂商都大力支持[X] HTML5,有些已经声明他们不会实现XHTML2).
XHTML1.0具有与HTML4.01 完全相同的语义和表示与结构的分离.任何不这样做的人都没有阅读说明书.我鼓励大家阅读这个规范 - 这是令人惊讶的短暂和无趣的.
HTML和XHTML中没有任何难以解决的差异会使解析速度比另一个慢得多.这取决于解析器的实现方式.
<meta>.与下载文档,构建DOM,运行脚本,应用CSS以及浏览器必须执行的所有其他操作所花费的时间相比,解析成本的总体差异很小.
Dan*_*man 11
我很惊讶这里的所有答案都推荐XHTML而不是HTML.我坚决反对意见 - 在可预见的未来,你不应该使用XHTML.原因如下:
没有浏览器会将XHTML解释为 XHTML,除非您将其作为mimetype提供application/xhtml+xml.如果您只使用默认的mimetype来提供它,所有浏览器都会将其解释为HTML - 例如,接受未闭合或不正确嵌套的元素.
但是,您永远不应该实际执行此操作,因为Internet Explorer无法识别application/xhtml+xml,并且无法完全呈现页面.
XHTML和HTML之间的DOM存在显着差异.由于目前所有所谓的XHTML页面都作为HTML提供,所有javascript代码都是使用HTML DOM编写的.如果对XHTML mimetype的支持变得非常重要,足以说服人们开始使用它,那么他们的大多数javascript代码都会破坏 - 即使他们认为他们的页面验证为XHTML.
作为一名程序员,您应该非常关心您的代码。HTML 很丑陋并且遵循很少的规则。
另一方面,XHTML 将 HTML 转变为一种适当的语言,遵循严格的结构和语法规则。
XHTML 对每个人都更好,因为它将有助于将网络发展到每个人(所有浏览器)都可以就如何显示网页达成一致的程度。
XHTML 是 XML 的后代,因此使用为分析语法上正确的 XML 文档而构建的解析器要容易得多。
如果您看不到 XHTML 的好处,您不妨使用 MS Word 来创建 HTML 文档。
我建议今天开始使用HTML 5,而不是继续讨论HTML 4.01 Strict vs XHTML Strict.jquery的作者John Resig 去年在他的博客上提出了类似的建议.
HTML 5 doctype,其简洁美观将触发所有浏览器(包括IE6)的标准模式.
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
而已.
HTML 5提供了一些令人兴奋的新功能,例如<canvas>可能将javascript应用程序开发推向更高级别的标记.HTML 5也<video>以及<audio>标签的形式对媒体提供适当的支持(而媒体是目前网络的一个相当重要的方面!).
如果您喜欢XHTML的语法,即关闭"空"标签,例如<br />HTML 5中完全支持的标签.来自W3C帖子的Karl Dubost 学习如何编写HTML 5:
自动关闭标记是允许的并且符合HTML 5.
与HTML 5相比,XHTML2受到的关注相对较少.人们越来越清楚HTML 5是Web上标记的未来.微软的最新浏览器,IE8 仍然将XHTML呈现为text/hml的text/xml.
微软在W3C HTML工作组中有一位联合主席,并且他们对HTML 5提供了隐含的支持.所有浏览器供应商都公开宣布他们支持HTML 5.
最终,即使XHTML2重新获得业界的支持,也不会像过去那样拥有两个相互竞争的标准.两种语言都支持XML命名空间(在HTML 5的情况下,HTML的序列化,即DOCTYPE切换).