Maison  >  Article  >  interface Web  >  Comment tracer l'arborescence d'héritage CSS en JavaScript ?

Comment tracer l'arborescence d'héritage CSS en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-10 11:07:02970parcourir

How to Trace the CSS Inheritance Tree in JavaScript?

Traçage de l'arbre d'héritage CSS en JavaScript

Identifier les règles CSS appliquées à un élément spécifique est crucial pour comprendre l'apparence visuelle et le comportement d'un page web. De nombreux outils fournissent des méthodes pratiques pour sélectionner des éléments en fonction de la classe ou de l'ID, mais retracer les origines des règles CSS calculées pose un défi en JavaScript pur.

Pour résoudre ce problème, une solution compatible avec plusieurs navigateurs peut être implémentée :

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

Cette fonction prend un élément comme argument et renvoie un tableau de règles CSS qui s'y appliquent. Pour démontrer son utilisation :

var element = document.getElementById('elementId');
var rules = css(element);
console.log(rules); // Array of CSS rules applied to the element

Cette solution fournit une méthode légère et compatible avec tous les navigateurs pour déterminer les règles CSS appliquées à un élément, permettant aux développeurs de retracer l'arborescence d'héritage et d'obtenir des informations plus approfondies sur le style de leurs pages Web.

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!

Déclaration:
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