繁体中文
设为首页
加入收藏
当前位置:网站制作首页 >> 其它 >> Web标准发展建议与实例(5)

Web标准发展建议与实例(5)

2008-05-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:5. (X)HTML 使用HTML4.01是可以制作出现代的、结构化的、兼容标准的站点的。然而,为了做到向整洁的语义化的代码的转变,并且为XML和未来的其他标记语言做好准备,建议大家使用XHTML1.0 Strict来创建新的站点,本...

5. (X)HTML

使用HTML4.01是可以制作出现代的、结构化的、兼容标准的站点的。然而,为了做到向整洁的语义化的代码的转变,并且为XML和未来的其他标记语言做好准备,建议大家使用XHTML1.0 Strict来创建新的站点,本文中的例子用的就是XHTML1.0 Strict。

XHTML 1.0 是以XML 1.0对HTML 4的改进,它的发展,以用来代替HTML。XHTML 1.0 Strict(这是我一直所倡导的)不支持表现类的标记(HTML 4.01其实也不支持,但是现在我们讨论的是XHTML)。正因为此,XHTML1.0 Strict 就促使了表现与结构的分离。

XHTML 1.1(XHTML的最新版)从技术上说,使用起来有一些复杂。因为规定中声明XHTML 1.1的文档应当使用MIME类型 application/xHTML+XML, 不应当被看作text/HTML。 并不是严格的禁止使用text/HTML, 只是不建议使用。 另外一方面,XHTML 1.0 (应当使用 application/xHTML+XML)同样可以使用MIME类型 text/HTML, 如果它是可兼容的HTML。W3C的注解XHTML Media Types 中包括了MIME类型(W3C推荐使用的类型)的概要。

不幸的是,一些老的浏览器包括IE不能识别MIME类型 application/xHTML+XML, 并且会终止显示源代码,甚至会干脆拒绝显示整个文档。

如果你想使用application/xHTML+XML, 你应当让服务器检验一下读取文档的浏览器是否支持MIME类型,如果能,就使用绻荒埽褪褂胻ext/HTML。

如果你使用的是PHP作为服务器端的脚本,那么下面的这段脚本能够让你的文档针对不同的浏览器使用不同的MIME类型。

{ header("Content-Type: application/xHTML+XML; charset=iso-8859-1");

header("Vary: Accept");

echo("\n");

} else { header("Content-Type: text/HTML; charset=iso-8859-1");

header("Vary: Accept"); } ?>

这个脚本是检测是否用户代理发送了一个包含“application/xHTML+XML”的Accept HTTP头,或者如果用户代理是W3C HTML校验器(不会发送合适的Accept HTTP头的,但是它依然支持 application/xHTML+XML)。如果上面检测的回答是肯定的,文本将被看作 application/xHTML+XML。那些浏览器也会收到一个XML的声明。对于另外的一些浏览器(包括IE的是所有版本),文档都将被看做 text/HTML。在文档中也没有添加额外的XML声明,因为如果添加的话,会使IE/WIN转化到我们所不希望的Quirks模式。

在Content-Type头部之后,一个被更改过的头部,将被发送到中间的缓存中(比如一些代理服务器),用来告诉他们文档的内容类型随着客户端对文档的请求而改变。

如果想了解更多的PHP检测脚本, 请参考Serving up XHTML with the correct MIME type. 那个脚本对请求客户端的q-rating(它声明了更够很好的支持某种MIME类型)进行了考虑,在发送text/HTML 文档给不支持 application/xHTML+XML的客户端之前,把XHTML转化成HTML 4。

下面的是一个相似的脚本,针对ASP(VBSscript): 0 Or InStr(Request.ServerVariables("HTTP_USER_AGENT"), "W3C_Validator") > 0 Then Response.ContentType = "application/xHTML+XML" Response.Write("" & VBCrLf); Else Response.ContentType = "text/html" End If Response.Charset = "iso-8859-1" %>

值得注意的是,当一个文档的MIME type是application/xHTML+XML时,一些浏览器(像Mozilla)是不会显示包含错误的文档的。这在开发过程中是一件好事,但是对于那些刚刚更新完站点且不是XHTML专家的人来说,就会出现一些问题,除非您能确保所有的代码都是规范的。如果出现了这种问题,您可以考虑使用HTML 4.01 Strict来代替XHTML。

下面列出了一些在使用XHTML 1.0 Strict中需要特别注意的地方:

永远使用小写字母,让引号伴随者属性: 所有元素和属性的名字都必须使用小写,所有属性值必须使用双引号。

错误:

正确:

关闭所有的元素:在HTML中一些元素没有必要被关闭。当下一个元素开始的时候,上一个元素就自动被关闭。XHTML中是不允许这样的。所有元素都必须被关闭,即使其中没有内容(如

正确:

属性不能被缩减: 在HTML里,一些属性可以被缩减。而XHTML则不允许这样做。

错误:

正确:

不要使用被排斥的元素: 一些元素和属性在HTML 4.01 Transitional和XHTML 1.0 Transitional是被允许的,而在XHTML 1.0 Strict下则不被支持(还有in HTML 4.01 Strict)。比如、、 alink、align、width、 height (对于某些元素)和 background。

责任编辑:admin
相关文章