¿Por qué la propiedad disabled no funciona cuando se aplica en HTML a una sección <style> pero sí funciona cuando se aplica a través de JS? En otras palabras, si tengo:
<html> <style id="myStyle" disabled> body { background-color: black; color: white; } </style> <script> // document.getElementById("myStyle").disabled = true; </script> <body> Hello world! </body> </html> Entonces será texto blanco sobre fondo negro aunque la sección <style> tenga el atributo disabled . Pero si elimino el comentario de la línea JS, el estilo se desactivará correctamente y será texto negro sobre fondo blanco. También probé disabled="true" y algunas otras variantes sin efecto.
¡Gracias!
La etiqueta de estilo en realidad no tiene una propiedad deshabilitada según la especificación HTML https://www.w3.org/TR/html401/present/styles.html#h-14.2.3
<!ELEMENT STYLE - - %StyleSheet -- style info --> <!ATTLIST STYLE %i18n; -- lang, dir, for use with title -- type %ContentType; #REQUIRED -- content type of style language -- media %MediaDesc; #IMPLIED -- designed for use with these media -- title %Text; #IMPLIED -- advisory title -- >Sin embargo, la especificación dom tiene una propiedad deshabilitada ( https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-16428977 ):
interface HTMLStyleElement : HTMLElement { attribute boolean disabled; attribute DOMString media; attribute DOMString type; };Por lo tanto, su JS puede cambiar el DOM y deshabilitar la etiqueta de estilo, sin embargo, no hay forma de deshabilitar la etiqueta de estilo directamente desde HTML.
El estilo no tiene un atributo deshabilitado según la especificación.
https://www.w3.org/TR/html401/present/styles.html#h-14.2.3
%i18n; -- lang, dir, para usar con el título -- escriba %ContentType; #REQUERIDO -- tipo de contenido de lenguaje de estilo -- medios %MediaDesc; #IMPLÍCITO -- diseñado para usar con estos medios -- título %Texto; #IMPLÍCITO -- título de aviso --
También el estilo es una etiqueta principal:
El elemento STYLE permite a los autores poner reglas de hoja de estilo en el encabezado del documento. HTML permite cualquier número de elementos de ESTILO en la sección HEAD de un documento.