Heim > Web-Frontend > CSS-Tutorial > Wie überschreibe ich Stile in einem Shadow-Root-Element?

Wie überschreibe ich Stile in einem Shadow-Root-Element?

Susan Sarandon
Freigeben: 2024-11-12 22:41:02
Original
334 Leute haben es durchsucht

How to Override Styles in a Shadow-Root Element?

Stile in einem Shadow-Root-Element überschreiben

Shadow DOM isoliert Stile innerhalb seines Geltungsbereichs, was es schwierig macht, sie mithilfe globaler CSS-Regeln zu ändern . Um dieses Problem zu beheben, ziehen Sie die folgende Problemumgehung in Betracht:

Stil direkt in Shadow Root einfügen:

Erstellen Sie ein neues Stilelement und stellen Sie dessen innerHTML auf die gewünschten Stiländerungen ein:

var style = document.createElement('style');
style.innerHTML = '.the-class-name { property-name: my-value; }';
Nach dem Login kopieren

Als nächstes fügen Sie das Stilelement an den Schatten an root:

host.shadowRoot.appendChild(style);
Nach dem Login kopieren

Hinweis: Dieser Ansatz erfordert, dass das Shadow DOM in den „offenen“ Modus gesetzt wird.

Chrome 73 und Opera 60-Verbesserung:

In neueren Versionen dieser Browser kann ein CSSStyleSheet-Objekt instanziiert und direkt auf ein Objekt angewendet werden Shadow DOM:

var sheet = new CSSStyleSheet;
sheet.replaceSync(`.color { color: pink }`);
host.shadowRoot.adoptedStyleSheets.push(sheet);
Nach dem Login kopieren

Achtung: Fügen Sie nicht dasselbe Stylesheet mehrmals zum adoptiertenStyleSheets-Array hinzu, insbesondere beim Neuladen der SPA-Seite.

Das obige ist der detaillierte Inhalt vonWie überschreibe ich Stile in einem Shadow-Root-Element?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage