Maison > interface Web > tutoriel CSS > Comment puis-je inspecter un arbre d'héritage CSS à l'aide de JavaScript pur ?

Comment puis-je inspecter un arbre d'héritage CSS à l'aide de JavaScript pur ?

Mary-Kate Olsen
Libérer: 2024-12-19 00:28:11
original
380 Les gens l'ont consulté

How Can I Inspect a CSS Inheritance Tree Using Pure JavaScript?

Inspection de l'arbre d'héritage CSS à l'aide de JavaScript

Considérez une page Web avec un élément p avec l'identifiant "description":

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

<p>
Copier après la connexion

Lorsque le navigateur restitue cet élément, il fusionne toutes les règles CSS applicables dans un seul arbre d'héritage. Comment pouvons-nous reproduire cela en JavaScript pur, sans compter sur des plugins de navigateur ?

Solution :

Afin d'inspecter les règles CSS appliquées à un élément, nous pouvons parcourir les feuilles de style du document et correspondent aux sélecteurs de l'élément. Voici une fonction JavaScript multi-navigateurs pour y parvenir :

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;
}
Copier après la connexion

L'appel de css(document.getElementById('description')) renvoie un tableau de chaînes de règles CSS appliquées à l'élément, dans ce cas :

["p { color :red; }", "#description { font-size: 20px; }"]
Copier après la connexion

Cette fonction permet aux développeurs d'accéder à la source des règles CSS calculées, facilitant ainsi le débogage et la compréhension de la page Web. style.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal