Heim > Web-Frontend > CSS-Tutorial > Warum gibt „element.style' „Leer' zurück, wenn Stile in einer externen CSS-Datei definiert werden?

Warum gibt „element.style' „Leer' zurück, wenn Stile in einer externen CSS-Datei definiert werden?

Mary-Kate Olsen
Freigeben: 2024-11-11 16:21:03
Original
434 Leute haben es durchsucht

Why Does  `element.style` Return Empty When Styles Are Defined in an External CSS File?

Verstehen, warum element.style leer zurückgibt

In JavaScript gibt die Eigenschaft element.style normalerweise die Inline-Stilattribute zurück, die direkt auf ein Element angewendet werden im HTML-Dokument. Allerdings ist der Inline-Stil nicht der bevorzugte Ansatz für Styling-Elemente, da er zu Code-Inkonsistenzen und Problemen bei der Wartbarkeit führen kann.

Das Problem tritt jedoch auf, wenn Sie Stile explizit in einer externen CSS-Datei definieren und dann versuchen, auf diese zuzugreifen Stile mit element.style. In diesem Fall gibt element.style immer ein leeres Objekt zurück, was Sie verwirrt.

Inline vs. berechnete Stile

Um dieses Verhalten zu verstehen, ist es wichtig, es zu verstehen die Unterscheidung zwischen Inline- und berechneten Stilen. Inline-Stile beziehen sich auf die Stilattribute, die direkt auf ein Element im HTML-Dokument angewendet werden, während berechnete Stile die Kombination aller anwendbaren Stile aus jeder anwendbaren Quelle darstellen, einschließlich der Inline-Stile, CSS-Stylesheets und Benutzeragenten-Stile.

JavaScript kann CSS-Stile nicht direkt lesen

JavaScript allein ist nicht in der Lage, CSS-Stile direkt zu lesen. Stattdessen verlässt es sich auf die Rendering-Engine des Browsers, die die berechneten Stile basierend auf den Kaskadenregeln von CSS berechnet.

Wenn Sie also auf element.style zugreifen, greifen Sie nur auf die Inline-Stile zu, die in fehlen Ihren Fall, da Sie Stile in einer externen CSS-Datei bereitgestellt haben. Um die berechneten Stile zu erhalten, die sowohl Inline- als auch externe CSS-Stile umfassen, müssen Sie die Funktion window.getComputedStyle(element) verwenden.

Lösung: Verwendung von getComputedStyle

In Ihrem Szenario liefert die Funktion getComputedStyle das gewünschte Ergebnis:

console.log(window.getComputedStyle(document.getElementById('test')).display);
Nach dem Login kopieren

Diese Codezeile protokolliert den Wert von die Anzeigeeigenschaft, wie sie in Ihrer CSS-Datei definiert ist, auch wenn element.style.display eine leere Zeichenfolge zurückgibt.

Die wichtigste Erkenntnis ist also, dass element.style spezifisch für Inline-Stile ist, während window.getComputedStyle den Zugriff ermöglicht sowohl auf Inline- als auch auf externe CSS-Stile, was Sie benötigen, um Stilinformationen genau abzurufen.

Das obige ist der detaillierte Inhalt vonWarum gibt „element.style' „Leer' zurück, wenn Stile in einer externen CSS-Datei definiert werden?. 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