HTML
- HTML 4.0 Strict: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN” “http://www.w3.org/TR/REC-html40/strict.dtd”>
- HTML 4.0 Transitional: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
- HTML 4.0 Frameset: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” “http://www.w3.org/TR/html4/frameset.dtd”>
- HTML 3.2: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 Final//EN”>
- HTML 2.0: <!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML//EN”>
XHTML
- XHTML 1.0 Strict: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
- XHTML 1.0 Transitional: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
- XHTML 1.0 Frameset: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
- XHTML 1.1: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
说明一下,XHTML 1就是HTML 4.01的XML化,是一种不向前兼容的格式,未来的XHTML 2也不会向后兼容。汗……这是一个很可悲规范。
那么应该选择哪个?我置信很多人,尤其是接触了网页标准(Web Standards)的人,会毫不犹疑地选择XHTML 1.0 Transitional。这是一股趋势,这是一股潮流,暗示着,嘿嘿,伙计,看见没,我们的网站使用最新技术构建了……
这里有一个很风趣的统计,使用XHTML 1.0 Strict和Transitional的占绝大多数,且对半开。那么,这个世界就那么美好了吗?
我们先来看看W3C的建议,总结出下表:
Media types summary for serving XHTML documentsMedia Typetext/htmlapplication/xhtml+xmlapplication/xmltext/xmlHTML 4SHOULDMUST NOTMUST NOTMUST NOT
XHTML 1.0 (HTML Compatible)MAYSHOULDMAYMAY
XHTML 1.0 (other)SHOULD NOTSHOULDMAYMAY
XHTML BasicSHOULD NOTSHOULDMAYMAY
XHTML 1.1SHOULD NOTSHOULDMAYMAY
XHTML + MathMLSHOULD NOTSHOULDMAYMAY
前面说到,XHTML 1实际上是HTML 4.01的XML化。即时看起来,写起来,用起来都很像,但这是两种不同的规范。XHTML的MIME-TYPE应该是application/xhtml+xml
,而HTML应该是text/html
。两者有何不同,简单的说,application/xhtml+xml
属于XML,所以行为遵照一切XML规范,最重要的是良构(Well-Formed)这一点。
除了XHTML 1.0 Transitional和Frameset,我们可以看到,XHTML 1.0 Strict和1.1都SHOULD使用application/xhtml+xml
。然而,我们可以看到,前面提到的那个统计,并没有多少个网站使用application/xhtml+xml
,可以说他们是扯虎皮做大旗而已(如果您有心查看一下本blog的源码,您会发现我也是),它们非良构的内容仍然可以通过支持application/xhtml+xml
的浏览器(如Firefox, Opera)来展现,由于它们本质上还是text/html
,而text/html