XHMTL和HTML的差异总结

此文乃松鼠个人总结,综合从以下几个方面进行了考量

  • XHTML和HTML的目标
  • 浏览器的渲染模式
  • Doctype
  • 文本模式

XHTML和HTML的目标

话说HTML一出生,就注定命途坎坷,先是各家支持有限,接着在浏览器大战时代,被东拉西扯,一路艰辛活过来,终于长到了4.01版本(HTML5 还在制订中)。HTML出现的目的是为了在屏幕浏览器上为网页渲染找到一种合理的规则和模式,本质上来说HTML属于一种数据组织结构。但是HTML出现以后,因为规则并不够严谨,加之各个浏览器对其支持存在差异,开发者对HTML是怨声载道(也可以说是对浏览器)。

XHTML的出现则不同,有几种声音可以听一听,首先是XHTML是HTML到XML的过渡,类似于一座桥;XHTML最终会替代HTML,而XML最终会替代XHTML(值得商榷,HTML5正在制订当中,HTML挂不了,而且还会活得很好);XHTML的应用范围比HTML更广泛,除了屏幕浏览器,还可以应用于手持设备(XHTML MP,但是很多手机支持HTML的固定子集);XHTML的本质是XML(一定条件下);XHTML比HTML更严谨(一定条件下)。

看出差别来了吗?抛开其他的都不管,HTML最初的目标是实现网页浏览方式的统一,XHTML更多地考虑了结构的严谨,向XML的转换以及应用范围

浏览器的渲染模式

关于浏览器的渲染模式,之前在浏览器的两种模式quirks mode和strict mode网页制作知识:XHTML 和 DOCTYPE 切换中已经介绍过,这里不再啰嗦了。

Doctype

Doctype的问题,之前的DOCTYPE声明的作用及用法详解讨论过,这里补充一下Strict和Transitional的差别。
Strict模式下,浏览器一般会尽其所能,使用最标准最严格的方式来渲染页面,此时的跨浏览器间展现可能会小一点。

文本模式

文本模式指什么?这里要说的是XHTML中的meta信息

<meta http-equiv=”Content-Type” content=”application/xhtml+xml;charset=UTF-8″ />

注意上面的meta,application/xhtml+xml,这要求浏览器使用xhtml+xml方式去解析文件,但是很不幸,IE不支持。

application/xml表示xml,受局限太大。

text/html,那么为什么不用html?

总结

用HTML还是XHTML?
不管你在做网站的时候使用HTML,还是XHTML,一定要写Doctype,这样可以保证不同浏览器间的渲染方式差异最小。(IE会打开standard,Firefox会打开almost standard)

用什么样的Doctype?
Transitional具有更好的兼容性,不过前提是你打算在网页里面写上一坨垃圾代码。Strict比Transitional更严谨。
不过还是建议使用Strict模式,因为它会强制浏览器以当前所能支持的最严格最标准的方式去展示页面,进而减少跨浏览器的差异(只能算作一个理由)。

综合前面两点,现在可以选择的文档类型就剩下XHTML StrictHTML Strict了。
那么选择哪一个呢?

天空一声巨响,文本模式闪亮登场。
XHTML的本质是XML,那么显然应用application/xhtml+xml比较合理,但是,很不幸,IE不支持。使用text/html当然没有问题,页面就是一个HTML页面了,不过,你放弃了XHTML的所有优势!此时选择XHTML Strict还是HTML Strict无所谓。

还是一种观点,既然你已经选择了XHTML,那么application/xhtml+xml和text/html下的展现方式应该一致,不然就应该使用html。(百家之言)

参考资料

用HTML还是XHTML —— Ten questions for Tommy Olsson

XHTML1.0 Element Attributes by DTD

posted @ 2009-06-29 15:39  Devbar  阅读(416)  评论(0编辑  收藏  举报