Heim > Web-Frontend > CSS-Tutorial > Warum gibt „Element.style' unterschiedliche Werte für Inline- und Master-Stylesheet-Stile zurück?

Warum gibt „Element.style' unterschiedliche Werte für Inline- und Master-Stylesheet-Stile zurück?

Susan Sarandon
Freigeben: 2024-11-10 21:28:02
Original
885 Leute haben es durchsucht

Why Does `Element.style` Return Different Values for Inline and Master Stylesheet Styles?

Diskrepanz beim Abrufen des Anzeigestils in Master-Stylesheets

Beim Zugriff auf den Stil eines Elements über die Element.style-Eigenschaft von JavaScript ist es wichtig, mögliche Unterschiede in zu beachten Verhalten basierend darauf, wie der Stil deklariert wird.

Im beschriebenen Szenario wurde ein anfänglicher display:none-Stil festgelegt inline auf einem DIV-Element. Allerdings wurde das Element dann ausgeblendet, als der ursprüngliche Stil in ein Master-Stylesheet verschoben wurde. Interessanterweise gab der Zugriff auf die style.display-Eigenschaft des Elements eine leere Zeichenfolge zurück, während dieselbe Eigenschaft, auf die über einen Inline-Stil zugegriffen wurde, „none“ zurückgab.

Dieses Verhalten ist auf die Unterscheidung zwischen deklariertem Stil zurückzuführen und berechneter Stil. Deklarierte Stile sind solche, die einem Element explizit zugewiesen werden, entweder inline oder über ein Stylesheet. Berechnete Stile hingegen stellen den endgültig gerenderten Stil eines Elements dar und berücksichtigen dabei alle relevanten Faktoren, einschließlich geerbter und kaskadierter Stile.

Wenn Sie auf Element.style zugreifen, erhalten Sie nur den deklarierten Stil. Um den berechneten Stil zu erhalten, der den tatsächlich auf das Element angewendeten Stil widerspiegelt, müssen Sie die Methode window.getComputedStyle() verwenden. Diese Methode bietet eine umfassende Darstellung des Stils des Elements, einschließlich der Eigenschaften, die durch Vererbung, Kaskadierung und Browser-Standardwerte beeinflusst werden.

Mit getComputedStyle() können Sie den Anzeigestil eines Elements zuverlässig abrufen, selbst wenn dies der Fall ist wird zunächst durch ein Master-Stylesheet ausgeblendet:

const element = document.getElementById('myDiv');
const display = getComputedStyle(element).getPropertyValue('display');
// display will now return 'none' or 'block', as appropriate
Nach dem Login kopieren

Dieser korrigierte Ansatz stellt sicher, dass Sie auf den genauen berechneten Stil des Elements zugreifen, unabhängig von seinem Stil erklärt.

Das obige ist der detaillierte Inhalt vonWarum gibt „Element.style' unterschiedliche Werte für Inline- und Master-Stylesheet-Stile zurück?. 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