2012-11-12 17 views
5

Zauważyłem w IE9, że użycie macierzy DXIImageTransform spowoduje pixelację obróconego tekstu. Nie mam tego problemu w IE8 lub 7. Normalnie używałbym opcji css3 w IE9, ale z powodów poza moją kontrolą, strona renderuje w trybie dziwactwa (poprawna iframe html5 osadzona na stronie innej firmy bez typu dokumentu)DXIMageTransform.Microsoft.Matrix rozmyte w IE9

jest to kod używam:

<!--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> 

w IE8, wynik obrócony tekst jest gładka, ale w IE9 to bardzo piksele. Porównać do tego (co nie działa w trybie quirks)

<!-- 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> 

Aby zobaczyć go w akcji, sprawdź ten skrzypce w IE9 http://jsfiddle.net/U4CCD/3/

Moje pytanie, w jaki sposób można obracać tekst w IE9, w trybie dziwactwa, który nie wygląda na pikselowany i niewyraźny. Dlaczego transformacja macierzy zaczęła ssać IE9?

Jeśli masz wystarczająco dużo szczęścia, aby nie uruchamiać IE9, to właśnie to widzę. Jaśniejszym przykładem jest sposób, w jaki wygląda w IE8 i jak wygląda przy użyciu transformacji css3.

IE9 sucks

Odpowiedz

4

Ostatecznie stwierdziliśmy, że to po prostu nie można zrobić z mojej obecnej konfiguracji. Byłem jednak w stanie obejść go, zawijając moją prawidłową stronę HTML5 w obiekcie, który został następnie osadzony w elemencie iframe. W IE 9 zdawało się, że moja strona renderuje się w elemencie iframe w trybie standardowym i używa transformacji SVG, które wyglądają na czyste. Utworzono następujący skrypt aspx opakowania:

<%@ 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>