国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS使用getComputedStyle()方法獲取CSS屬性值

2024-05-06 16:04:30
字體:
來源:轉載
供稿:網友
經常會用到js來獲取元素的CSS樣式,由于方法眾多,在下面的文章中為大家詳細整理下

在對網頁進行調試的過程中,經常會用到js來獲取元素的CSS樣式,方法有很多很多,現在僅把我經常用的方法總結如下:

1. obj.style:這個方法只能JS只能獲取寫在html標簽中的寫在style屬性中的值(style=”…”),而無法獲取定義在<style type="text/css">里面的屬性。

復制代碼 代碼如下:


<span><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ““>
<html xmlns=”“>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>JS獲取CSS屬性值</title>
<style type=”text/css”>
<!–
.ss{color:#cdcdcd;}
–>
</style>
</head>

<body>
<div id=”css88″ class=”ss” style=”width:200px; height:200px; background:#333333″>JS獲取CSS屬性值</div>
<script type=”text/javascript”>
alert(document.getElementById(“css88″).style.width);//200px
alert(document.getElementById(“css88″).style.color);//空白
</script>
</body>
</html> </span>


2. IE中使用的是obj.currentStyle方法,而FF是用的是getComputedStyle 方法

“DOM2級樣式”增強了document.defaultView,提供了getComputedStyle()方法。這個方法接受兩個參數:要取得計算樣式的元素和一個偽元素字符串(例如“:after”)。如果不需要偽元素信息,第二個參數可以是null。getComputerStyle()方法返回一個CSSStyleDeclaration對象,其中包含當前元素的所有計算的樣式。以下面的HTML頁面為例:

復制代碼 代碼如下:


<span><!DOCTYPE html>
<html>
<head>
<title>計算元素樣式</title>
<style>
#myDiv {
background-color:blue;
width:100px;
height:200px;
}
</style>
<body>
<div id ="myDiv"></div>
<script>
var myDiv = document.getElementById("myDiv");
var computedStyle = document.defaultView.getComputedStyle(myDiv, null);
alert(computedStyle.backgroundColor); //"red"
alert(computedStyle.width); //"100px"
alert(computedStyle.height); //"200px"
alert(computedStyle.border); //在某些瀏覽器中是“1px solid black”
</script>
</body>
</head>
</html></span>


邊框屬性可能也不會返回樣式表中實際的border規則(Opera會返回,但其它瀏覽器不會)。存在這個差別的原因是不同瀏覽器解釋綜合屬性的方式不同,因為設置這種屬性實際上會涉及很多其他的屬性。在設置border時,實際上是設置了四個邊的邊框寬度、顏色、樣式屬性。因此,即使computedStyle.border不會在所有瀏覽器中都返回值,但computedStyle.borderLeftWidth則會返回值。

需要注意的是,即使有些瀏覽器支持這種功能,但表示值的方式可能會有所區別。例如,Firefox和Safari會返回將所有顏色轉換成RGB格式。因此,即使getComputedStyle()方法時,最好多在幾種瀏覽器中測試一下。

IE不支持getComputedStyle()方法,但它有一種類似的概念。在IE中,每個具有style屬性的元素還有一個currentStyle屬性。這個屬性是CSSStyleDeclaration的實例,包含當前元素全部計算后的樣式。取得這些樣式的方法差不多,如下:

復制代碼 代碼如下:


<span>var myDiv = document.getElementById("myDiv");
var computedStyle = myDiv.currentStyle;
alert(computedStyle.backgroundColor); //"red"
alert(computedStyle.width); //"100px"
alert(computedStyle.height); //"200px"
alert(computedStyle.border); //undefined</span>


與DOM版本的方式一樣,IE也沒有返回border樣式,因為這是一個綜合屬性。

3. 我自己在寫測試case過程中寫的一個簡單的函數(適用于Chrome):

復制代碼 代碼如下:


<span>function getCSS(div){
return document.defaultView.getComputedStyle(div, null);
//return div.currentStyle;//沒用過,IE
}</span>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 柘荣县| 衡山县| 余干县| 临澧县| 辉县市| 治县。| 辰溪县| 望江县| 龙南县| 库尔勒市| 梁山县| 浙江省| 神农架林区| 武乡县| 凤冈县| 怀化市| 福建省| 金乡县| 沅江市| 金华市| 视频| 和政县| 尼勒克县| 海丰县| 龙井市| 临汾市| 攀枝花市| 通城县| 南投市| 荆门市| 中超| 红安县| 梁山县| 郴州市| 长兴县| 融水| 阿克陶县| 弋阳县| 佛山市| 新平| 英超|