2013-05-02 208 views
7

我想在IE8中旋轉文本。據this答案,也應該可以旋轉,試圖在下面的例子中的一個因素,如果我檢查p元素與開發工具爲什麼不是這個元素旋轉工作?

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
     #enclosing { 
      width: 20px; 
      height: 100px; 
      border: 1px solid; 
     } 

     #rotated { 
      -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=6.123031769111886e-17, M12=1, M21=-1, M22=6.123031769111886e-17, SizingMethod='auto expand')"; 
      width: 100px; 
     } 
    </style> 
</head> 

<body> 
    <div id="enclosing"> 
     <p id="rotated">rotated</p> 
    </div> 
</body> 
</html> 

(從this發電機人多勢衆)

我可以看到它受到某種影響,因爲顯示所選元素的藍色邊框被正確旋轉(但實際元素未被旋轉),請參閱下圖。

ispected with dev tools

編輯: 爲了澄清,這是它的外觀沒有過濾聲明:

without filter statement

+0

您是否只在前面嘗試了'filter:'沒有'-ms-'? – Morpheus 2013-05-02 14:45:30

+0

是的,沒有供應商前綴什麼也沒有發生。 (甚至沒有顯示在圖片中的旋轉) – rob 2013-05-02 14:48:43

+0

只是來自發生器的一個註釋:_/* IE8 + - 必須在一行上,不幸的是*/_您的聲明是否在一行中? – Morpheus 2013-05-02 15:03:04

回答

4

您當前的標記起作用,問題是您必須在IE10中啓用舊式過濾器才能在運行IE8模式的IE10中正確呈現結果。

所以,答案則是使傳統的過濾器:http://blogs.msdn.com/b/ie/archive/2012/06/04/legacy-dx-filters-removed-from-ie10-release-preview.aspx

進入「設置[裝備]」 >>「Internet選項」 >>「安全」 然後點擊「自定義級別」和道路向下滾動在結果窗口中找到「Render legacy filters」選項。啓用它。

Enable legacy filters in IE10

2

既然你已經在你正在測試的評論澄清在IE10的IE8 Comaptibility模式下,而不是真正的IE8副本,這變得更容易回答。您的問題的答案是explained here on MSDN

簡而言之,IE10認爲filter樣式已過時並且即使在兼容模式下也會禁用它。可以啓用,但只能由最終用戶啓用。

IE9不受此影響;在IE9中,filter樣式工作正常,但對於IE10,您將遇到問題。

引述:

對於Internet Explorer 10,DX過濾器將不能正常工作(已過時)在以下文檔模式:

  • 怪癖模式
  • IE10標準模式

對於其他文檔模式,DX過濾器(默認情況下)禁用Internet區域並啓用了本地Intra淨和可信站點區域。這會影響以下文檔模式:

  • IE9標準模式
  • IE8標準模式
  • IE7標準模式
  • IE5(怪癖)模式

最終用戶可以改變這些設置(僅適用於這些文檔模式)通過使用Internet選項來更改相關區域的安全設置。管理員也可以使用組策略。

注意出於安全性和性能方面的原因,強烈建議不要這樣做。另外,網頁無法修改這些設置(通常出於同樣的原因)。

這樣做的結果是,對於IE10,在兼容模式下不能可靠地使用filter樣式。

這意味着:

  1. 使用兼容模式來測試你的代碼在年長的IE是不是一個很好的測試。您確實需要使用舊IE版本的真實副本才能進行準確的測試。

  2. 這是一個壞主意,允許通過用戶使用兼容模式來顯示你的網站。強制他們使用X-UA-Compatible元標記以IEs最佳呈現模式查看網站。

+0

感謝你爲這個描述。我絕對同意你的第一點(特別是在這花了我一天之後)。我不知道第二點是可能的,但我認爲這不會是一個大問題。因爲除了出於測試目的,誰會以兼容模式運行IE? – rob 2013-05-02 15:47:58

+0

@rob - 在IE中有配置設置,告訴它在某些情況下默認使用兼容模式。某些公司用戶可能已啓用這些設置(並且最終用戶甚至可能不知道它),這意味着您無法確定*您的網站將呈現給所有用戶的模式。您可以使用「X-UA兼容」來覆蓋這些設置。 – Spudley 2013-05-02 15:56:17

+0

我沒有意識到這一點......添加了 '到我的頭:) – rob 2013-05-02 16:06:16