2014-01-23 2 views
19

mit einem SVG Pfad:CSS-Transformation an SVG-Elementen IE9 +

<path class='st8' d='M73.4,11.3c-6.3,0-6.4,3.6-6.4,3.6v18c0,0,0.6,3.3,6.4,3.3c5.8,0,6.6-3.3,6.6-3.3v-18 C80,14.9,79.7,11.3,73.4,11.3z M75,31.3c0,0-0.3,1.2-1.6,1.2c-1.3,0-1.4-1.2-1.4-1.2V16.6c0,0,0.3-1.3,1.5-1.3s1.5,1.3,1.5,1.3V31.3 z'/> 

Ich habe versucht, es von CSS zu verwandeln, anstatt zu erklären das transform Attribut aus dem Element-Tag.

Dieser Prozess funktioniert gut von Webkit und Firefox, jedoch beim Testen auf IE9 oder 10 nothing happens.

<svg> 
    <style> 
     .st8 { 
      -webkit-transform: rotate(45deg); /* works on chrome and Safari */ 
      -moz-transform: rotate(45deg); /* works on firefox */ 
      -ms-transform: rotate(45deg); /* doesn't work on IE */ 
      transform: rotate(45deg); 
     } 
    <style> 
    <path class='st8' d='M73.4,11.3c-6.3,0-6.4,3.6-6.4,3.6v18c0,0,0.6,3.3,6.4,3.3c5.8,0,6.6-3.3,6.6-3.3v-18 C80,14.9,79.7,11.3,73.4,11.3z M75,31.3c0,0-0.3,1.2-1.6,1.2c-1.3,0-1.4-1.2-1.4-1.2V16.6c0,0,0.3-1.3,1.5-1.3s1.5,1.3,1.5,1.3V31.3 z'/> 
</svg> 

Ich habe versucht, das Web für jeden Ort zu suchen, die CSS-Transformation zu erwähnen in der Tat nicht auf IE nicht funktioniert, aber ich konnte sie nicht finden. Daher meine Frage, ist es in der Tat nicht möglich, CSS-Transformation auf IE zu verwenden? Gibt es eine Problemumgehung neben der Verwendung des Attributs transform im Element-Tag?

Antwort

16

Obwohl IE9 + CSS3-Transformationen unterstützt, unterstützen sie diese nicht auf SVG und nach bestem Wissen kann es in CSS nicht gemacht werden.

Quelle: caniuse unter bekannten Probleme für CSS3 Wandelt http://caniuse.com/#feat=transforms2d

19

IE11 unterstützt das Attribut in SVG-Transformation, obwohl es nicht die CSS-Stil nicht erkennt. Siehe https://connect.microsoft.com/IE/feedback/details/811744/ie11-bug-with-implementation-of-css-transforms-in-svg.

Glücklicherweise können Sie einfach das Attribut den Stil mit JavaScript entsprechen:

var g= document.querySelector('.st8'), 
    transform= getComputedStyle(g).getPropertyValue('transform'); 

g.setAttribute('transform', transform); 

Working Fiddle

+1

nicht auf IE9 arbeiten! – vaskort

+1

Hmm, es funktioniert in meinem IE9-Emulator, aber ich habe keinen IE9-Computer, um es zu testen. Danke für die Information. –

+0

Keine Probleme, ich habe es auf VirtualBox mit ISO von www.modern.ie getestet, es ist die sicherste Option, die ich denke. Auch ich habe herausgefunden, dass Sie Svg Bilder in IE9 einfach nicht umwandeln können, also habe ich ein PNG verwendet. – vaskort