首頁 >web前端 >css教學 >如何在 JavaScript 中檢索元素的 CSS 屬性值?

如何在 JavaScript 中檢索元素的 CSS 屬性值?

Susan Sarandon
Susan Sarandon原創
2024-10-23 21:33:30379瀏覽

How to Retrieve CSS Property Values for Elements in JavaScript?

使用JavaScript 讀取元素的CSS 屬性

問題:

問題:

如何取得值使用JavaScript 的元素的CSS 屬性,考慮到樣式表從外部連結到網頁?

解:

主要有兩種方法:

1。使用 document.styleSheets:

此方法涉及手動迭代 document.styleSheets 數組並解析 CSS 規則以查找所需的屬性。但是,不建議使用這種方法,因為它會佔用大量資源,並且對於大多數場景來說並不實用。

2.建立匹配元素並使用 getComputedStyle:

此方法建立一個與目標元素具有相同 CSS 選擇器的元素,並使用 getComputedStyle 方法檢索屬性值。這種方法的優點是它考慮了所有繼承的樣式和動態應用的任何樣式。

程式碼範例:
<code class="javascript">function getStyleProp(elem, prop){
    if(window.getComputedStyle)
        return window.getComputedStyle(elem, null).getPropertyValue(prop);
    else if(elem.currentStyle)
        return elem.currentStyle[prop]; //IE
}</code>

擷取div 的「顏色」屬性對於「layout」類,使用以下程式碼:
<code class="javascript">window.onload = function(){
    var d = document.createElement("div"); //Create div
    d.className = "layout";                //Set class = "layout"
    alert(getStyleProp(d, "color"));       //Get property value
}</code>

用法:

附加說明:
<code class="javascript">function getNonInlineStyle(elem, prop){
    var style = elem.cssText; //Cache the inline style
    elem.cssText = "";        //Remove all inline styles
    var inheritedPropValue = getStyle(elem, prop); //Get inherited value
    elem.cssText = style;     //Add the inline style back
    return inheritedPropValue;
}</code>
忽略內聯目前元素上的樣式定義,使用getNonInlineStyle 函數:

以上是如何在 JavaScript 中檢索元素的 CSS 屬性值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn