最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js 操作css實(shí)現(xiàn)代碼

 更新時(shí)間:2009年06月11日 22:16:16   作者:  
雖說(shuō)jquery支持css選擇器,可以把一些css規(guī)則放在js里,js無(wú)論如何是比css靈活的。但是js修改的是dom的htmlelement的stlye,是一個(gè)操作而非規(guī)則。
當(dāng)我們需要的是一條規(guī)則的時(shí)候,總不能在每次dom發(fā)生變化的時(shí)候去執(zhí)行這個(gè)操作,否則也太效率低下了。
好在dom中css rules也是可以修改的。不過(guò)不同瀏覽器的對(duì)于css rules的接口描述也不同,其中ie中以類(lèi)似hash table的方式,而ff以數(shù)組方式。
從可編程性上說(shuō),ie的接口描述更討程序員喜歡,不過(guò)從邏輯上說(shuō),ff顯然更為合理。
我提供了類(lèi)似于ie的方式對(duì)兩套代碼進(jìn)行簡(jiǎn)單包裝,不過(guò)ie在dom的css removeRule之后并不能確定同步的把規(guī)則兌現(xiàn)。所以最好用規(guī)則覆蓋的方式而非remove。
需要注意的是,在使用改js函數(shù)的時(shí)候,頁(yè)面上至少要有一個(gè)style標(biāo)簽。下面是代碼及示例。
復(fù)制代碼 代碼如下:

<style>
#a:
{
color: blue;
}
</style>
<style>
#a:
{
background: gray;
}
</style>
<script>
function addCSSRule(key,value){
var css = document.styleSheets[document.styleSheets.length-1];
css.cssRules ?
(css.insertRule(key+"{"+value+"}", css.cssRules.length)) :
(css.addRule(key,value)) ;
}
function removeCSSRule(key){
for(var i = 0; i < document.styleSheets.length; i++){
var css = document.styleSheets[i];
css.cssRules ?
(function(){
for(var j = 0; j < css.cssRules.length; j++){
if(css.cssRules[j].selectorText==key){
css.deleteRule(j);
}
}
})() :
(css.removeRule(key)) ;
}
}
</script>
<div id="a">
abc
</div>
<button onclick='addCSSRule("#a","color:red;background:yellow;")'>
add</button>
<button onclick='removeCSSRule("#a")'>
remove</button>

相關(guān)文章

最新評(píng)論

明溪县| 巩义市| 南宁市| 鲁甸县| 买车| 彰化市| 若羌县| 文山县| 建湖县| 辉南县| 建德市| 清流县| 安福县| 广安市| 太康县| 柯坪县| 龙江县| 姜堰市| 景宁| 嵊泗县| 福鼎市| 灵台县| 连云港市| 宁武县| 珲春市| 保定市| 西乌| 林周县| 湖南省| 金门县| 屯昌县| 五寨县| 衢州市| 宝兴县| 霍山县| 巴楚县| 平泉县| 鄢陵县| 富顺县| 阿瓦提县| 安达市|