Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Kann JavaScript mit ungültigen Namen auf benutzerdefinierte CSS-Eigenschaften zugreifen?

Barbara Streisand
Freigeben: 2024-10-24 07:07:02
Original
218 Leute haben es durchsucht

Can JavaScript Access Custom CSS Properties with Invalid Names?

Zugriff auf ungültige benutzerdefinierte CSS-Eigenschaften über JavaScript

Es ist möglich, benutzerdefinierte CSS-Eigenschaften mit dem Präfix - zu erstellen. Kann jedoch über JavaScript auf diese benutzerdefinierten Eigenschaften zugegriffen werden?

Die Antwort lautet leider nein, zumindest in gängigen Browsern wie Chrome und Firefox. Benutzerdefinierte CSS-Eigenschaften mit ungültigen Namen werden vom CSS-Parser einfach ignoriert. Betrachten Sie beispielsweise das folgende CSS:

<code class="css">div {
    -my-foo: 42;
}</code>
Nach dem Login kopieren

Selbst wenn dieses CSS auf ein Div angewendet wird, wird der Versuch, mit JavaScript auf die Eigenschaft -my-foo zuzugreifen, nichts zurückgeben. Das CSSStyleDeclaration-Objekt enthält nur gültige Eigenschaften wie Breite oder Höhe.

Dieses Verhalten entspricht den CSSStyleDeclaration-Spezifikationen. In den Spezifikationen heißt es, dass das Objekt nur „angegebene Eigenschaften“ enthalten sollte, was bedeutet, dass benutzerdefinierte Eigenschaften nicht erkannt werden. Einige Implementierungen unterstützen jedoch möglicherweise den Zugriff auf benutzerdefinierte Eigenschaften, dies kann jedoch nicht garantiert werden.

Wenn der Zugriff auf benutzerdefinierte CSS-Eigenschaften für Ihre Anwendung von entscheidender Bedeutung ist, können Sie die Einschränkungen von JavaScript umgehen, indem Sie den rohen CSS-Text analysieren. Dies kann mithilfe der innerText-Eigenschaft des Stilelements erfolgen:

<code class="js">document.getElementsByTagName("style")[0].innerText</code>
Nach dem Login kopieren

Dieser Ansatz funktioniert zwar, ist jedoch nicht so einfach wie der direkte Zugriff auf die Eigenschaften über das CSSStyleDeclaration-Objekt. Darüber hinaus ist eine zusätzliche Analyse und Bearbeitung des CSS-Textes erforderlich.

Das obige ist der detaillierte Inhalt vonKann JavaScript mit ungültigen Namen auf benutzerdefinierte CSS-Eigenschaften zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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