Heim > Artikel > Web-Frontend > Warum gibt „Element.style“ unterschiedliche Werte für Inline- und Master-Stylesheet-Stile zurück?
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
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!