js獲取非內部取樣式表中定義的屬性值
在學習js的過程中,通常最先掌握的獲取元素樣式屬性值是使用以下方式:
[JavaScript] 純文字檢視 複製程式碼element.style
看一段相關程式碼例項:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div{ height:100px; margin-bottom:10px; background-color:green; } #bottom{ width:100px; } </style> <script type="text/javascript"> window.onload=function(){ alert(document.getElementById("top").style.width); alert(document.getElementById("bottom").style.width); } </script> </head> <body> <div id="top" style="width:100px;"></div> <div id="bottom"></div> </body> </html>
從以上程式碼的表現可以看出,使用element.style方式可以獲取使用style標籤在標籤內部定義的樣式屬性值,卻不能夠獲取其他方式定義的樣式屬性值,所以要獲取內聯樣式表或者外部樣式表定義的屬性值,則需要考慮使用其他方式了,下面就簡單介紹一下,由於存在瀏覽器相容性問題,所以就分組介紹一下:
IE瀏覽器下:
在IE8或者更低版本的IE瀏覽器下要使用以下方式:
[JavaScript] 純文字檢視 複製程式碼element.currentStyle
此方式可以獲取當前物件的所有最終樣式屬性值。它能夠感知指定物件中的樣式的優先順序。
element.style與element.currentStyle的區別:
1.element.style是可讀寫的,而element.currentStyle是隻讀的。
2.element.style僅能夠獲取style屬性定義的樣式屬性值,而element.currentStyle可以獲取物件的最終屬性值。
3.element.style相容所有瀏覽器,而element.currentStyle僅被IE8或者IE8以下瀏覽器支援。
標準瀏覽器下:
W3C給予了一種標準方式:
[JavaScript] 純文字檢視 複製程式碼window.getComputedStyle(element, pseudoElt)
以上方式可以獲取指定物件的CSS屬性物件。它具有兩個引數:
1.element:必需,是要獲取CSS屬性的物件。
2.pseudoElt:可選,一個偽元素字串(例如:after),在比較老舊的瀏覽器中此引數為必需,但是現在一般可選也沒有問題。
在很多程式碼中也有document.defaultView.getComputedStyle()形式,不過它和window.getComputedStyle()的區別可以忽略不計,因為在當前的瀏覽器中一般沒有不會有任何問題。
element.currentStyle與window.getComputedStyle()的區別:
1.IE8和IE之下瀏覽器不支援window.getComputedStyle(),其他標準瀏覽器都支援,只有IE瀏覽器支援element.currentStyle。
2.element.currentStyle不支援偽類樣式獲取,window.getComputedStyle()支援。
那麼可以整合為一個相容所有瀏覽器的程式碼:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div{ height:100px; margin-bottom:10px; background-color:green; } #bottom{ width:100px; } </style> <script type="text/javascript"> window.onload=function(){ function GetCurrentStyle(obj, prop){ if(obj.currentStyle){ return obj.currentStyle[prop]; } else if(window.getComputedStyle){ return window.getComputedStyle(obj,null)[prop]; } return null; } var bottom=document.getElementById("bottom"); alert(GetCurrentStyle(bottom,"width")) } </script> </head> <body> <div id="top" style="width:100px;"></div> <div id="bottom"></div> </body> </html>
以上程式碼可以相容各大瀏覽器,能夠獲取到bottom元素的width屬性值。
程式碼註釋:
1.if(obj.currentStyle)判斷瀏覽器是否支援currentStyle。
2.obj.currentStyle[prop]使用鍵/值方式訪問返回的CSS屬性物件中指定屬性的值。
3.if(window.getComputedStyle)判斷是否支援getComputedStyle。
相關文章
- js如何獲取樣式表中定義的css屬性值JSCSS
- js如何獲取給定屬性的屬性值JS
- javascript如何獲取內聯樣式和外部樣式表的值JavaScript
- C#反射設定屬性值和獲取屬性值C#反射
- 設定和獲取元素固有屬性值
- javascript通用獲取元素樣式屬性值程式碼例項JavaScript
- javascript獲取物件直接量中的屬性和屬性值JavaScript物件
- js如何獲取某一類type屬性值表單元素JS
- 在url中通過屬性名獲取屬性值
- JavaScript 獲取 checked 屬性值JavaScript
- javascript如何獲取屬性值JavaScript
- 獲取json串裡的某個屬性值JSON
- JavaScript 通過 type 屬性值獲取表單元素JavaScript
- js獲取元素的樣式值簡單介紹JS
- jQuery - 獲取內容和屬性jQuery
- 批量獲取表定義的方法
- js獲取元素的方法與屬性JS
- js獲取checkbox核取方塊checked屬性值為true核取方塊JS
- 視窗屬性的獲取函式函式
- 獲取dom的最終的css屬性值CSS
- getComputedStyle()獲取樣式值
- 使用SQL語句獲取SQLite中的表定義SQLite
- jquery設定和獲取元素的屬性jQuery
- 獲取選中select下拉選單的value屬性值
- ms sql 獲取表欄位的屬性SQL
- C#獲取某個物件的屬性值C#物件
- jQuery獲取id屬性值具有點的元素jQuery
- 使用jQuery獲取iframe元素的value屬性值jQuery
- 獲取影像的屬性
- 獲取List集合物件中某一列屬性值物件
- JS - 獲取CSS屬性值 getComputedStyle()與currentStyle()、style()方法JSCSS
- JavaScript使用name屬性值獲取元素物件JavaScript物件
- getComputedStyle()函式如何獲取border等符合屬性值函式
- JS基礎_獲取元素的樣式JS
- 010-jQuery獲取和設定內容屬性jQuery
- js 獲取被選中核取方塊的值JS
- 文字框獲取或者失去焦點改變樣式屬性
- jQuery獲取CSS樣式中的顏色值的問題jQueryCSS