2009-08-20 34 views
0

我一直在尋找DOCTYPE標籤的一段時間,這會使符合Internet Explorer標準的css與一個普通的xml文檔兼容,因爲我想使用white-space css屬性。 This page指出,使用「doctype'XML'」應該足以讓Internet Explorer 6+通過 - 但我已經嘗試了每個可以在示例中查找/找到的DOCTYPE標記,但未獲得預期的結果。也許我在這裏錯過了其他的東西,但基本上我認爲正確的DOCTYPE標籤(在代碼中的正確位置)應該這樣做。在IE中用於符合xml標準的模式的Doctype

這裏是我與測試代碼:

Test.css:

Message { 
    white-space: pre-wrap; 
} 

的test.xml:

<?xml version="1.0"?> 
<?xml-stylesheet href="Test.css" type="text/css"?> 
<Message><![CDATA[ 
Some data 

which is pre 

formatted 
]]></Message> 

上面的例子正常工作的,是FF &蘋果瀏覽器。

回答

1

沒有這樣的事情,因爲IE尚不支持正確的MIME類型,application/xml + xhtml,用於將XML作爲XML提供。但是IE確實直接支持XML,所以你可以直接寫電子郵件,而不用假裝成HTML,然後用樣式表使頁面顯示爲HTML。這種方法將導致可訪問性和語義違規,因爲沒有人會理解XML元素的語法。

而這可能就是爲什麼XML很少被網絡採用。

0

根據我的發現,沒有一個。文件謊言。樣式表呈現的原始XML文檔看起來總是處於怪癖模式,理論上它們應該始終處於標準模式,而不管文檔類型如何(現在已經過時了,並且現在還沒有在XML中使用太多)。

上面的例子並沒有真正證明,雖然...我是這樣的測試:

<?xml-stylesheet href="test.css" type="text/css"?> 
<potato> 
    <custard>X</custard> 
</potato> 

custard { width: 150px; padding: 50px; background: yellow; } 

這使得總寬度+填充爲150像素,而不是正確250像素。加入的任何一個:

<!DOCTYPE potato> 
<!DOCTYPE potato SYSTEM "blankfile.dtd"> 
<!DOCTYPE potato PUBLIC "-//W3C//DTD XHTML 1.0//EN" "blankfile.dtd"> 

或改變根元素爲「HTML」和涉及實時XHTML DTD URI,都沒有區別。原始XML呈現保持怪癖模式。這與識別MIME application/xhtml + xml媒體類型無關。

我想IE的原始XML呈現是自IE5以來還沒有真正看到任何更新的功能。它繼續緩慢,古怪和無用。