目前有很多css屬性都是私有方式實現(xiàn)的,想用就要加一堆破前綴,-moz-,-ms-,-o-,-webkit-;如果在樣式表里改一個值就需要從新把所由的都改一遍非常麻煩。
或者用dom style去設(shè)置一個元素的style也非常麻煩,大部分都是駝峰式的,firefox是個另類,MozTransition要處理成這樣的,不管用正則還是別的方式都不是很好處理。
小的簡單封裝了一個方法,用起來還不錯。
用dom style的cssText直接注入或者,調(diào)用后拷貝到樣式表都比較方便。
fixCSS('transition','all .8s ease-in 1s'); function fixCSS(a,p){ return '-moz-#:@;-ms-#:@;-o-#:@;-webkit-#:@;#:@;'.replace(/#:@/g,a+':'+p); } |
調(diào)用這個方法后會返回這樣的字符串
"-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設(shè)置后,瀏覽器只會識別自己私有的那部分代碼,其他會忽略掉,所以還是比較理想的。如果要修改樣式表就更方便了,拷貝粘貼足以。
不過opera有個問題,他會把所有的字符串賦值給style,但是功能并沒有影響。
另外要注意的是:
cssText屬性,會重寫style的所有值。
關(guān)于css私有屬性的處理大家還有更好的思路,可以告知小的,感激不盡!
ps:css已經(jīng)進入css4時代了,mediaquery被納入規(guī)范。