Maison > interface Web > tutoriel CSS > Comment remplacer les styles dans un élément Shadow-Root ?

Comment remplacer les styles dans un élément Shadow-Root ?

Susan Sarandon
Libérer: 2024-11-12 22:41:02
original
344 Les gens l'ont consulté

How to Override Styles in a Shadow-Root Element?

Remplacer les styles dans un élément Shadow-Root

Shadow DOM isole les styles dans sa portée, ce qui rend difficile leur modification à l'aide de règles CSS globales . Pour résoudre ce problème, envisagez la solution de contournement suivante :

Injectez le style directement dans la racine de l'ombre :

Créez un nouvel élément de style et définissez son innerHTML sur les modifications de style souhaitées :

var style = document.createElement('style');
style.innerHTML = '.the-class-name { property-name: my-value; }';
Copier après la connexion

Ensuite, ajoutez l'élément de style à l'ombre root :

host.shadowRoot.appendChild(style);
Copier après la connexion

Remarque :Cette approche nécessite que le Shadow DOM soit défini en mode « ouvert ».

Amélioration de Chrome 73 et Opera 60 :

Dans les versions récentes de ces navigateurs, un objet CSSStyleSheet peut être instancié et appliqué directement à a Shadow DOM :

var sheet = new CSSStyleSheet;
sheet.replaceSync(`.color { color: pink }`);
host.shadowRoot.adoptedStyleSheets.push(sheet);
Copier après la connexion

Attention : N'ajoutez pas plusieurs fois la même feuille de style au tableau adoptéStyleSheets, notamment lors des rechargements de pages SPA.

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