首頁 > web前端 > css教學 > 如何使用純 JavaScript 檢索元素的所有適用 CSS 規則?

如何使用純 JavaScript 檢索元素的所有適用 CSS 規則?

Susan Sarandon
發布: 2024-12-28 22:56:10
原創
338 人瀏覽過

How Can I Retrieve All Applicable CSS Rules for an Element Using Pure JavaScript?

使用JavaScript 尋找適用於元素的CSS 規則

在Web 開發中,存取特定類別或ID 的CSS 元素是一項常見任務,通常由工具和API 輔助。然而,瀏覽器會編譯來自各種來源的所有適用的 CSS 規則來決定元素的外觀。我們如何在純 JavaScript 中複製此功能,而不依賴瀏覽器插件?

識別計算的CSS 規則

考慮以下HTML 和CSS 範例:

<style type="text/css">
    p { color :red; }
    #description { font-size: 20px; }
</style>

<p>
登入後複製

在這種情況下,元素p#description 繼承了兩個CSS 規則:紅色和字體大小20 像素。目標是確定這些規則的起源。

JavaScript 實作

為了實現這一點,我們可以使用以下JavaScript 函數:

function css(el) {
    var sheets = document.styleSheets, ret = [];
    el.matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector;
    for (var i in sheets) {
        var rules = sheets[i].rules || sheets[i].cssRules;
        for (var r in rules) {
            if (el.matches(rules[r].selectorText)) {
                ret.push(rules[r].cssText);
            }
        }
    }
    return ret;
}
登入後複製

用法

var rules = css(document.getElementById('elementId'));
登入後複製

用法

用>

規則變數現在將包含適用於所選元素的所有CSS規則的數組。

注意:

此函數依賴 Element.matches() 方法,該方法需要一個跨針對舊版瀏覽器的瀏覽器相容性polyfill。然而,它提供了一種快速有效的識別 CSS 規則的方法,無需額外的瀏覽器插件。

以上是如何使用純 JavaScript 檢索元素的所有適用 CSS 規則?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板