javascript 讀取內(nèi)聯(lián)之外的樣式(style、currentStyle、getComputedStyle區(qū)別介紹)
樣式表有三種方式
內(nèi)嵌樣式(inline Style) :是寫在Tag里面的,內(nèi)嵌樣式只對(duì)所有的Tag有效。
內(nèi)部樣式(internal Style Sheet):是寫在HTML的<head></head>里面的,內(nèi)部樣式只對(duì)所在的網(wǎng)頁有效。
外部樣式表(External Style Sheet):如果很多網(wǎng)頁需要用到同樣的樣式(Styles),將樣式(Styles)寫在一個(gè)以.css為后綴的CSS文件里,然后在每個(gè)需要用到這些樣式(Styles)的網(wǎng)頁里引用這個(gè)CSS文件。
下面的是讀取除了內(nèi)嵌樣式之外樣式的js,只能讀不能寫。
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
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
最常用的是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中的.
比如說
<style>
#mydiv {
width : 300px;
}
</style>
則:
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
相關(guān)文章
Bootstrap Tooltip顯示換行和左對(duì)齊的解決方案
小編在使用Bootstrap的Tooltip功能時(shí)遇到一些小問題,換行丟失,文字不是左對(duì)齊。下面小編給大家介紹下Bootstrap Tooltip顯示換行和左對(duì)齊的解決方案,感興趣的朋友一起看看吧2017-10-10微信小程序?qū)崿F(xiàn)登錄注冊(cè)tab切換效果
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)登錄注冊(cè)切換效果,簡易版tab切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11arcgis for js柵格圖層疊加(Raster Layer)問題
這篇文章主要介紹了arcgis for js柵格圖層疊加(Raster Layer)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11underscore之Chaining_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文通過文字說明與代碼的形式給大家介紹了underscore之Chaining的相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2017-07-07element-ui組件輸入框之放大鏡搜索圖標(biāo)問題
這篇文章主要介紹了element-ui組件輸入框之放大鏡(搜索圖標(biāo))的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11