"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Puede JavaScript acceder a propiedades CSS personalizadas con nombres no válidos?

¿Puede JavaScript acceder a propiedades CSS personalizadas con nombres no válidos?

Publicado el 2024-11-04
Navegar:336

Can JavaScript Access Custom CSS Properties with Invalid Names?

Acceso a propiedades CSS personalizadas no válidas desde JavaScript

Es posible crear propiedades CSS personalizadas utilizando el prefijo -. Sin embargo, ¿se puede acceder a estas propiedades personalizadas desde JavaScript?

Lamentablemente, la respuesta es no, al menos en los principales navegadores como Chrome y Firefox. El analizador de CSS simplemente ignora las propiedades CSS personalizadas con nombres no válidos. Por ejemplo, considere el siguiente CSS:

div {
    -my-foo: 42;
}

Incluso si este CSS se aplica a un div, intentar acceder a la propiedad -my-foo usando JavaScript no devolverá nada. El objeto CSSStyleDeclaration solo contendrá propiedades válidas, como ancho o alto.

Este comportamiento está de acuerdo con las especificaciones de CSSStyleDeclaration. Las especificaciones establecen que el objeto sólo debe incluir "propiedades especificadas", lo que implica que no se reconocen las propiedades personalizadas. Sin embargo, algunas implementaciones pueden admitir el acceso a propiedades personalizadas, pero esto no está garantizado.

Si el acceso a propiedades CSS personalizadas es crucial para su aplicación, puede evitar las limitaciones de JavaScript analizando el texto CSS sin formato. Esto se puede hacer usando la propiedad InnerText del elemento de estilo:

document.getElementsByTagName("style")[0].innerText

Si bien este enfoque funciona, no es tan tan sencillo como acceder a las propiedades directamente desde el objeto CSSStyleDeclaration. Además, requiere análisis y manipulación adicionales del texto CSS.

Declaración de liberación Este artículo se reimprime en: 1729724578 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3