This works
div{
-ms-transform: rotate(30deg);
}
And following does not
$("div").css("-ms-transform","rotate(30deg)");
Any ideas why, and how to fix it?
Same thing works good on all other browsers, but not on IE.
Ofcourse, only IE9 supports it. Older versions dont.
The dash (‘-‘) in the property is invalid for use in scripting. You should use
msTransforminstead.By the way: though a number of browsers do understand and parse css like style[‘background-color’] from scripting, afaik Firefox doesn’t. Furthermore I think JQuery
.css(...)transforms properties like'background-color'to their DOM-scripting equivalent ('backgroundColor'in this case) before parsing it.To be complete:
JQuery.cssindeed transforms dashed properties to camelCase. Here’s a representation of theJQuery.css-internals with the string'-ms-transform':So that’s why
$("div").css("-ms-transform","rotate(30deg)")doesn’t work in IE9. IE9 expects:msTransform.Why then, does
$("div").css("-moz-transform", "rotate(-90deg)")work in Firefox? Because Mozilla evidently decided to use complete CamelCase for their -moz-[properties], so theMozTransformscripting style property is valid (and, by the way,mozTransformisn’t … really).It’s all to the browser then, nothing new under the digital sun.