2012-11-12 25 views
5

我注意到在IE9中使用矩陣DXIImageTransform將像素化旋轉文本。我在IE8或7中沒有這個問題。通常我會使用IE9中的css3選項,但是由於我的控制以外的原因,頁面呈現爲怪癖模式(有效的html5 iframe嵌入在沒有文檔類型的第三方頁面中)DXIMageTransform.Microsoft.Matrix在IE9模糊

這是我使用的代碼:

<!--Looks like crap but is my only option in quirks mode--> 
<span style="position:absolute; 
    filter:progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', 
    M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);"> 
    Does this make my butt look pixelated?  
</span> 

在IE8中,結果旋轉的文本是順利,但在IE9它是非常像素化。比較這(不怪癖模式工作)

<!-- looks great but doesn't work in quirks mode--> 
<span style="position:absolute; top:150px; -ms-transform: rotate(-45deg);"> 
    Does this make my butt look pixelated? 
</span> 

要看到它在行動,在看看這個小提琴IE9 http://jsfiddle.net/U4CCD/3/

我的問題,我怎麼能旋轉文本在IE9中,在怪癖模式下,這看起來並不全是像素化和模糊的。爲什麼矩陣變換開始吸吮IE9?

如果你有幸不要運行IE9,這就是我所看到的。更清晰的例子是它在IE8中的外觀以及它如何使用css3轉換。

IE9 sucks

回答

4

最終我發現,這根本無法與我目前的配置來完成。但是,我可以通過將有效的html5頁面包裹在嵌入iframe的對象中來解決這個問題。在IE 9中,這似乎允許我的頁面在標準模式下的iframe中呈現,並使用看起來很乾淨的SVG轉換。我創建了以下包裝aspx腳本:

<%@ Page Language="C#" %> 

<% 
    string url = "app/path"; 
    if(!String.IsNullOrEmpty(Request.QueryString["path"])) 
     url = HttpUtility.UrlDecode(Request.QueryString["path"]); 

    url += "?i=1"; 
    if(!String.IsNullOrEmpty(Request.QueryString["id"])) 
     url += "&id=" + Request.QueryString["id"]; 

    if(Request.Browser.Browser!="IE"||Request.Browser.MajorVersion!=9) { 
     Response.Redirect(url); 
    } 
    url += "&quirky=1"; 
%> 
<html> 
<head><title></title> 
</head> 
<body style="width:100%; height:100%; margin:0; padding:0; overflow:hidden;"> 
<object type="text/html" data="<% =url %>" style="overflow:hidden; width:100%; height:100%"></object> 
</body> 
</html>