„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum ist „element.style.display“ leer, auch wenn ich CSS-Regeln habe?

Warum ist „element.style.display“ leer, auch wenn ich CSS-Regeln habe?

Veröffentlicht am 14.11.2024
Durchsuche:213

Why is `element.style.display` Empty Even When I Have CSS Rules?

Warum CSS-Stileigenschaften mit getElementById() leer bleiben.style

Wenn Sie getElementById() verwenden, um ein HTML-Element abzurufen und darauf zuzugreifen style-Eigenschaft über element.style.display gibt häufig einen leeren Wert zurück, obwohl eine CSS-Stilregel wie #map {display: block} vorhanden ist.

Dies Verhalten entsteht, weil element.style nur die Inline-Stile widerspiegelt, die explizit für das Element im HTML-Dokument festgelegt sind. Wenn keine Inline-Stile definiert sind, ist element.style leer.

Um auf den tatsächlich berechneten Stil eines Elements zuzugreifen, der sowohl Inline-Stile als auch CSS-Regeln enthält, verwenden Sie die Methode window.getComputedStyle(). Diese Methode stellt ein Style-Objekt bereit, das den vollständigen auf das Element angewendeten Stil darstellt.

Beim Aufruf von console.log(window.getComputedStyle(document.getElementById('test')).display) wird beispielsweise „block, " spiegelt die #map {display: block}-Regel wider.

Obwohl vom Inline-Styling im Allgemeinen zugunsten von CSS abgeraten wird, ist es wichtig, den Unterschied zwischen element.style und zu verstehen window.getComputedStyle() ist entscheidend für den genauen Zugriff auf Elementstile in JavaScript.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3