现在的位置: 首页 > 综合 > 正文

[javascript]用js修正浏览器私有属性

2012年04月06日 ⁄ 综合 ⁄ 共 757字 ⁄ 字号 评论关闭

目前有很多css属性都是私有方式实现的,想用就要加一堆破前缀,-moz-,-ms-,-o-,-webkit-;如果在样式表里改一个值就需要从新把所由的都改一遍非常麻烦。

 

或者用dom style去设置一个元素的style也非常麻烦,大部分都是驼峰式的,firefox是个另类,MozTransition要处理成这样的,不管用正则还是别的方式都不是很好处理。

小的简单封装了一个方法,用起来还不错。

用dom style的cssText直接注入或者,调用后拷贝到样式表都比较方便。

 

fixCSS('transition','all .8s ease-in 1s');
function fixCSS(a,p){
     return  '-moz-#:@;-ms-#:@;-o-#:@;-webkit-#:@;#:@;'.replace(/#:@/g,a+':'+p);
}

调用这个方法后会返回这样的字符串  

 

"-moz-transition:all .8s ease-in 1s;-ms-transition:all .8s ease-in 1s;-o-transition:all .8s ease-in 1s;-webkit-transition:all .8s ease-in 1s;transition:all .8s ease-in 1s;"

用cssText设置后,浏览器只会识别自己私有的那部分代码,其他会忽略掉,所以还是比较理想的。如果要修改样式表就更方便了,拷贝粘贴足以。

 

不过opera有个问题,他会把所有的字符串赋值给style,但是功能并没有影响。

 

另外要注意的是:

cssText属性,会重写style的所有值。

 

 

关于css私有属性的处理大家还有更好的思路,可以告知小的,感激不尽!

 

ps:css已经进入css4时代了,mediaquery被纳入规范。

抱歉!评论已关闭.