Maison > interface Web > tutoriel CSS > le corps du texte

JavaScript peut-il accéder aux propriétés CSS personnalisées avec des noms invalides ?

Barbara Streisand
Libérer: 2024-10-24 07:07:02
original
210 Les gens l'ont consulté

Can JavaScript Access Custom CSS Properties with Invalid Names?

Accès aux propriétés CSS personnalisées non valides à partir de JavaScript

Il est possible de créer des propriétés CSS personnalisées en utilisant le préfixe -. Cependant, ces propriétés personnalisées sont-elles accessibles à partir de JavaScript ?

La réponse est malheureusement non, du moins dans les principaux navigateurs comme Chrome et Firefox. Les propriétés CSS personnalisées avec des noms non valides sont simplement ignorées par l'analyseur CSS. Par exemple, considérons le CSS suivant :

<code class="css">div {
    -my-foo: 42;
}</code>
Copier après la connexion

Même si ce CSS est appliqué à un div, tenter d'accéder à la propriété -my-foo à l'aide de JavaScript ne retournera rien. L'objet CSSStyleDeclaration ne contiendra que des propriétés valides, telles que la largeur ou la hauteur.

Ce comportement est conforme aux spécifications CSSStyleDeclaration. Les spécifications indiquent que l'objet ne doit inclure que des « propriétés spécifiées », ce qui implique que les propriétés personnalisées ne sont pas reconnues. Cependant, certaines implémentations peuvent prendre en charge l'accès aux propriétés personnalisées, mais cela n'est pas garanti.

Si l'accès aux propriétés CSS personnalisées est crucial pour votre application, vous pouvez contourner les limitations de JavaScript en analysant le texte CSS brut. Cela peut être fait en utilisant la propriété innerText de l'élément style :

<code class="js">document.getElementsByTagName("style")[0].innerText</code>
Copier après la connexion

Bien que cette approche fonctionne, elle n'est pas aussi simple que d'accéder aux propriétés directement à partir de l'objet CSSStyleDeclaration. De plus, cela nécessite une analyse et une manipulation supplémentaires du texte CSS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal