ホームページ >ウェブフロントエンド >CSSチュートリアル >JavaScript のみを使用して、どの CSS ルールが特定の要素に影響を与えるかを判断するにはどうすればよいですか?

JavaScript のみを使用して、どの CSS ルールが特定の要素に影響を与えるかを判断するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-16 22:57:19383ブラウズ

How Can I Determine Which CSS Rules Affect a Specific Element Using Only JavaScript?

JavaScript の要素に影響する CSS ルールの決定

問題:

多くの Web 開発ツールは、次の要素に基づいて要素を選択する機能を提供しています。クラスまたはID。ただし、ブラウザーがロードする生の CSS スタイルシートを検査することで、ブラウザーのレンダリング プロセスをさらに詳しく調べることができます。 CSS ルールはコンパイルされ、複数のスタイルシートの要素に適用され、複雑な継承ツリーが作成されます。

質問:

この機能を、依存せずに純粋な JavaScript で複製するにはどうすればよいですか?追加のブラウザplugins?

例:

次のような特定の要素の場合:

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

<p>

p#description 要素は次のとおりです。 2 つの CSS ルールの影響を受けます: 赤色とフォント サイズ20px.

答え:

機能:

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;
}

使用法:

calling css(document.getElementById('elementId')) 

この関数は、それぞれを含む配列を返します。渡された要素と一致する CSS ルール。

以上がJavaScript のみを使用して、どの CSS ルールが特定の要素に影響を与えるかを判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。