HTML vs XHTML这还重要吗?

HTML vs XHTML这还重要吗?,html,xhtml,Html,Xhtml,我想知道,只要我能生成有效的标记,我是否应该为标记语言而烦恼 我读过一些文章指出HTML是最好的选择,它们直接来自马口铁(浏览器实现者!): James Bennet的其他文章提出了另一个观点,即如果您不将XHTML作为XML提供,那么您不需要XHTML,而需要HTML 所以我认为,如果我想触发标准兼容模式,我应该使用HTML严格验证。但至少对于最现代的浏览器(即IE6以外的所有浏览器)来说,情况已经不是这样了:如果您有有效的XHTML Strict,您仍然会触发标准兼容模式,因

我想知道,只要我能生成有效的标记,我是否应该为标记语言而烦恼

我读过一些文章指出HTML是最好的选择,它们直接来自马口铁(浏览器实现者!):

James Bennet的其他文章提出了另一个观点,即如果您不将XHTML作为XML提供,那么您不需要XHTML,而需要HTML


所以我认为,如果我想触发标准兼容模式,我应该使用HTML严格验证。但至少对于最现代的浏览器(即IE6以外的所有浏览器)来说,情况已经不是这样了:如果您有有效的XHTML Strict,您仍然会触发标准兼容模式,因此,只要我生成有效的标记,为什么还要麻烦呢?

我会选择XHTML,主要是因为代码更干净,更易于维护


但是这里有一些关于为什么不使用xhtml的有趣的观点,选择一个并坚持使用它,并且在面对其他约束时尽可能地遵从它。但是,一秒钟也不要认为HTML与XHTML是比完成工作、建立和运行网站更重要的问题,因为这将带来收入。用户对XHTML毫不在意。

如果您真的不关心粗略的支持,请尝试HTML5。我的后备方案是严格的HTML4.01,除非我需要内联SVG或类似的东西,在这种情况下,它始终是XHTML(作为XML提供)。

如果使用XHTML,请选择XHTML 1.0,而不是XHTML 1.1,除非您打算使用正确的XML或XHTML mimetype提供它。事实上,仔细想想,也不要那样做。使用正确的mimetype服务XHTML1.0或1.1有巨大的缺点。最轻微的错误,你会得到死亡的黄屏

w3c规范说,只要遵循向后兼容性的某些规则(主要是在自动关闭标记中,在/正斜杠前包含空格),就可以将XHTML1.0作为text/html提供

除此之外,还有其他支持/反对的论点。我倾向于使用xhtml,因为有各种工具和库可以解析有效的xml,使类似xslt的转换成为可能(有用吗?)


另一件事是,在flash中解析有效的xml是可能的——因此,您可以选择xhtml作为flash电影的动态内容替换,或者将xhtml内容动态加载到flash电影中。或者,任何可以读取xml的东西都可以读取xhtml。这是很多事情。

我的建议是使用HTML4 Strict或HTML5.valid,在stan中dards模式,CSS用于布局。您将获得通常与XHTML相关的所有好处,但没有任何问题

请记住:XHTML DOCTYPE不会像XHTML那样启用文档解析。它只启用标准模式,HTML 4和HTML 5也可以使用标准模式

  • XHTML/1.0与HTML4.01具有相同的语义和几乎相同的CSS支持
  • 有效的HTML4.01被明确地解析,就像有效且格式良好的XHTML/1.0一样
  • XML DOM为您提供了名称空间支持,但取消了对
    document.write
    innerHTML
    的支持
如果没有在HTTP头(而不是文档本身)中设置正确的XML MIME类型,您所得到的只是将所有内容解析为HTML和HTMLDOM

Internet Explorer(包括IE8)仍然不支持XHTML。在IE(和Google机器人)中,XHTML被误解为带有语法错误的HTML(无论是70%还是30%的用户,这仍然是需要考虑的问题)

,您会很快注意到几乎没有人使用XHTML。他们只是在HTML上使用了错误的DOCTYPE:


这些“XHTML”页面之所以有效,只是因为它们通常被解释为HTML。

我目前一直使用严格的HTML 4.01。HTML 5还不是确定的。我曾经是一个死硬的XHTML用户,但我的理由被抹去了,我更快乐、更高效

XHTML的论据通常倾向于“更干净的标记”或谈论格式良好的标记。这似乎更像是一个稻草人论据,在彻底的抨击下站不住脚

如果XHTML保证由XML解析器解析,那么它通常不会比HTML4.01Strict更干净(只是比较严格的doctype)

首先,必须以
http://example.com/?foo=bar&;baz=qux
看起来很尴尬。声明实体类型会变老

另一件事是,标记的转换通常不如XML树好,但Dom树很好

HTML 4.01 strict更易于使用和创建有效的站点。您不必在、
或之类的元素上放置无意义的结束标记。仅放置反斜杠不会改变任何特定含义

Yahoo和everything markupy的Douglas Crockford表示,最好将标记视为一种应用程序交付格式

因此,什么将是最容易交付、更健壮、更可靠的。这是我最终做出的决定。所有web浏览器处理XHTML的方式都不同,并且需要对内容类型标题进行调整。如果使用“text/XHTML”或“text/xml”,则会得到不同的结果

此外,“text/xml”不能很好地与REST配合使用,因为这意味着数据的xml序列化,而不是格式化的标记页(在我看来,Safari错误地将text/xml请求在text/html之前作为所需的内容类型!)

因此,请使用HTML 4.01,因为:

  • 它在所有浏览器中的工作方式更为相似
  • 不需要基于内容类型的处理(文本/html可以全面实现)
  • 没有XHTML那么脆弱
  • HTML5没有提供比HTML4.01更重要的内容

  • 在大多数情况下,这并不重要。