(一):http://blog.csdn.net/cui_angel/article/details/7815328
用js的style屬性可以獲得html標(biāo)簽的樣式毕荐,但是不能獲取非行間樣式束析。那么怎么用js獲取css的非行間樣式呢?在IE下可以用currentStyle东跪,而在火狐下面我們需要用到getComputedStyle畸陡。
例:
function getStyle(obj, attr)
{
if(obj.currentStyle)
{
return?obj.currentStyle[attr];
}
else
{
return?getComputedStyle(obj,false)[attr];
}
}
(二)
樣式表有三種方式:內(nèi)嵌樣式(inline Style) :是寫在Tag里面的,內(nèi)嵌樣式只對(duì)所有的Tag有效虽填。? (也稱作“內(nèi)聯(lián)樣式”)內(nèi)部樣式(internal Style Sheet):是寫在HTML的里面的丁恭,內(nèi)部樣式只對(duì)所在的網(wǎng)頁有效。外部樣式表(External Style Sheet):如果很多網(wǎng)頁需要用到同樣的樣式(Styles)斋日,將樣式(Styles)寫在一個(gè)以.css為后綴的CSS文件里牲览,然后在每個(gè)需要用到這些樣式(Styles)的網(wǎng)頁里引用這個(gè)CSS文件。 最常用的是style屬性恶守,在JavaScript中第献,通過document.getElementById(id).style.XXX就可以獲取到XXX的值,但意外的是兔港,這樣做只能取到通過內(nèi)嵌方式設(shè)置的樣式值庸毫,即style屬性里面設(shè)置的值。 解決方案:引入currentStyle,runtimeStyle,getComputedStyle style 標(biāo)準(zhǔn)的樣式,可能是由style屬性指定的衫樊!runtimeStyle 運(yùn)行時(shí)的樣式飒赃!如果與style的屬性重疊利花,將覆蓋style的屬性!currentStyle 指 style 和 runtimeStyle 的結(jié)合载佳! 通過currentStyle就可以獲取到通過內(nèi)聯(lián)或外部引用的CSS樣式的值了(僅限IE) 如:document.getElementById("test").currentStyle.top要兼容FF炒事,就得需要getComputedStyle 出馬了注意: getComputedStyle是firefox中的, currentStyle是ie中的. 比如說#mydiv {
width : 300px;
}則:var mydiv = document.getElementById('mydiv');if(mydiv.currentStyle) {? ? ? var width = mydiv.currentStyle['width'];? ? ? alert('ie:' + width);} else if(window.getComputedStyle) {? ? ? var width = window.getComputedStyle(mydiv , null)['width'];? ? ? alert('firefox:' + width);}另外在FF下還可以通過下面的方式獲取document.defaultView.getComputedStyle(mydiv,null).width;window.getComputedStyle(mydiv , null).width;