这有效
div{ -ms-transform: rotate(30deg); }
并且以下不
$("div").css("-ms-transform","rotate(30deg)");
任何想法为什么,以及如何解决? 相同的东西在所有其他浏览器上都可以正常工作,但在IE上却不行。当然,只有IE9支持它。旧版本不。
该属性中的破折号(’-‘)不适用于脚本编写。您应该msTransform改用。
msTransform
顺便说一句:尽管许多浏览器 确实 从脚本中理解并解析了诸如style [‘background-color’]之类的CSS,但afaik Firefox却无法。此外,我认为JQuery 在解析.css(...)属性之前会将属性转换'background- color'成与DOM脚本等效的属性('backgroundColor'在这种情况下)。
.css(...)
'background- color'
'backgroundColor'
为了完整起见:JQuery.css确实将虚线属性转换为camelCase。这是JQuery.css-internals的字符串表示形式 '-ms-transform':
JQuery.css
'-ms-transform'
var fcamelCase = function( all, letter ) { return letter.toUpperCase(); }; var rdashAlpha = /-([a-z])/ig; // JQuery.css does a replace operation with these variables // on the raw property string: alert('-ms-transform'.replace(rdashAlpha,fcamelCase)); //=> msTransform
这就是为什么$("div").css("-ms- transform","rotate(30deg)")在IE9中不起作用的原因。IE9期望:msTransform。
$("div").css("-ms- transform","rotate(30deg)")
为什么然后$("div").css("-moz-transform", "rotate(-90deg)")在Firefox中运行呢?因为Mozilla显然决定为其-moz- [properties]使用完整的CamelCase,所以MozTransform脚本样式属性是有效的(顺便说一句,mozTransform实际上不是。)。
$("div").css("-moz-transform", "rotate(-90deg)")
MozTransform
mozTransform
那么,一切都交给浏览器了,在数字阳光下没有什么新鲜的了。