假如你,像我,決定實現某些類型的content negotiation和在傳送XHTML的時候使用正確的媒體類型,你需要知道什么能(和將)在你發布的文檔中發生,并且知道怎樣避免問題的發生。對于對content negotiation同進行content negotiation的腳本例子有興趣的讀者,我推薦你閱讀Content Negotiation和Serving up XHTML with the correct MIME type(本站早有翻譯:使用正確的MIME類型伺服XHTML)。還有很多這種類型的文章,但這是我讀到的最精彩的兩篇。
在XHTML中使用JavaScript,document.write不會工作。Ian Hickson在Why document.write() doesn’t work in XML(本站早已翻譯:為什么document.write在XML中不工作)解釋了原因。你需要使用document.createElementNS()代替。關于更多可以在Experts Exchange中的論壇主題中找到。
這也是Google AdSense不在XHTML中工作的原因之一。那些希望以application/xhtml+xml伺服XHTML并且使用Google廣告的人,這兒有一個解決辦法:Simon Jessey的 Making AdSense work with XHTML(本站早有翻譯:使Google廣告AdSense在XHTML中工作)。盡管有點麻煩,但還是工作了(我在這里也使用了),同時被Google所認可。 引入樣式元素
在XHTML中,為了兼容定義CSS規則的XML方法,你應該使用XML樣式表聲明(訪問 XHTML 1.0, Second Edition: Referencing Style Elements when serving as XML的XML樣式表聲明和Associating Style Sheets with XML documents的xml-stylesheet處理說明)。要載入外部CSS文件,我們需要使用style元素,同時應該使用XML樣式表聲明來引入樣式元素。為此,使用id屬性給style元素一個分解的標識符,然后在XML樣式表聲明中引入該標識符:
CSS應用到body的性質(PRoperty)并不應用到XHTML的整個文檔。最值得注意的是應用背景顏色或者圖片。在HTML中,應用到body元素的背景將會覆蓋整個頁面。在XHTML中,你必須同時樣式化html。在Juicy Studio的 CSS body Element Test中有這個行為的演示。