getComputedStyle與currentStyle獲取樣式(style/class)
大家都知道,用document.getElementById(‘element').style.xxx可以獲取元素的樣式信息,可是它獲取的只是DOM元素style屬性里的樣式規(guī)則,對于通過class屬性引用的外部樣式表,就拿不到我們要的信息了。
DOM標(biāo)準(zhǔn)里有個全局方法getComputedStyle,可以獲取到當(dāng)前對象樣式規(guī)則信息,如:getComputedStyle(obj,null).paddingLeft,就能獲取到對象的左內(nèi)邊距。但是事情還沒完,萬惡的IE不支持此方法,它有自己的一個實現(xiàn)方式,那就是currentStyle,不同于全局方法getComputedStyle,它是作為DOM元素屬性存在的,如:obj.currentStyle.paddingLeft,在IE中就獲取到對象的左內(nèi)邊距了,兼容性的寫法如下:
return window.getComputedStyle ? window.getComputedStyle(obj,null).paddingLeft : obj.currentStyle.paddingLeft;
這樣,就能在IE及FF中返回對象的當(dāng)前樣式信息了。
特別注意一點:如果要獲取當(dāng)前對象的顏色信息,IE返回的是16進制的'#ffffff',而FF返回的是rgb(255,255,255)
用js的style屬性可以獲得html標(biāo)簽的樣式,但是不能獲取非行間樣式。那么怎么用js獲取css的非行間樣式呢?在IE下可以用currentStyle,而在火狐下面我們需要用到getComputedStyle。下面是一個小示例:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js用currentStyle和getComputedStyle獲取css樣式</title>
<style type="text/css">
#div1{width:100px; height:100px; background:red;}
</style>
<script type="text/javascript">
function getStyle(obj, attr)
{
if(obj.currentStyle)
{
return obj.currentStyle[attr];
}
else
{
return getComputedStyle(obj,false)[attr];
}
}
window.onload=function()
{
var oDiv=document.getElementById('div1');
alert(getStyle(oDiv,'width'))
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
相關(guān)文章
Js+Ajax,Get和Post在使用上的區(qū)別小結(jié)
下面小編就為大家?guī)硪黄狫s+Ajax,Get和Post在使用上的區(qū)別小結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06使用原生js實現(xiàn)頁面蒙灰(mask)效果示例代碼
像js的框架Extjs的mask()和unmask()功能提供了蒙灰效果,當(dāng)然jquery也提供了這種蒙灰方法,下面有個示例,大家可以參考下2014-06-06javascript 事件處理、鼠標(biāo)拖動效果實現(xiàn)方法詳解
在經(jīng)歷了漫長的時期,終于下定了決心自己寫一個層的拖動。當(dāng)然了,其它的拖動也是這樣的思路和做法,或者說,這樣的拖動適合所有的可見元素2012-05-05js貪吃蛇網(wǎng)頁版游戲特效代碼分享(挑戰(zhàn)十關(guān))
這篇文章主要為大家詳細介紹了js貪吃蛇網(wǎng)頁版游戲特效,游戲總共有十關(guān),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-08-08你可能不知道的JavaScript的new Function()方法
JavaScript的精神領(lǐng)袖Douglas Crockford曾說過JavaScript是程序員唯一不需要學(xué)習(xí)就能直接使用的語言. 在編程中確實是如此2014-04-04JavaScript使用高階生成器進行過濾以生成素數(shù)
生成器大家都知道是怎么一回事,但是高階生成器又是什么東西呢,下面小編就來為大家簡單介紹一下如何使用高階生成器進行過濾以生成素數(shù)吧2024-02-02