html - varias - selectores css
Pseudo-clases CSS con estilos en lĂnea (3)
¿Es posible tener pseudo-clases usando estilos en línea?
Ejemplo:
<a href="http://www.google.com" style="hover:text-decoration:none;">Google</a>
Sé que el HTML anterior no funcionará, pero ¿hay algo similar que lo haga?
PD. Sé que debería usar una hoja de estilo externa, y lo hago. Solo tenía curiosidad si esto podría hacerse usando estilos en línea.
En lugar de necesitar en línea, podrías usar CSS interno
<a href="http://www.google.com" style="hover:text-decoration:none;">Google</a>
Podrías tener:
<a href="http://www.google.com" id="gLink">Google</a>
<style>
#gLink:hover {
text-decoration: none;
}
</style>
No CSS, pero en línea:
<a href="#"
onmouseover = "this.style.textDecoration = ''none''"
onmouseout = "this.style.textDecoration = ''underline''">Hello</a>
No, esto no es posible En los documentos que utilizan CSS, un atributo de style
línea solo puede contener declaraciones de propiedades; el mismo conjunto de declaraciones que aparece en cada conjunto de reglas en una hoja de estilo. Desde la especificación de atributos de estilo :
El valor del atributo de estilo debe coincidir con la sintaxis de los contenidos de un bloque de declaración de CSS (excluyendo los delimitadores), cuya gramática formal se proporciona a continuación en los términos y convenciones de la gramática básica de CSS :
declaration-list : S* declaration? [ '';'' S* declaration? ]* ;
No se permiten selectores (incluidos los pseudoelementos), ni las reglas, ni ninguna otra construcción CSS.
Piense en estilos en línea como los estilos aplicados a algún selector de ID superespecífico anónimo: esos estilos solo se aplican a ese mismo elemento con el atributo de style
. (También tienen prioridad sobre un selector de ID en una hoja de estilo, si ese elemento tiene esa ID.) Técnicamente no funciona así; esto es solo para ayudarlo a comprender por qué el atributo no admite estilos de pseudo-clase o pseudo-elemento (tiene más que ver con cómo las pseudo-clases y los pseudo-elementos proporcionan abstracciones del árbol de documentos que no se pueden expresar en el lenguaje del documento).
Tenga en cuenta que los estilos en línea participan en la misma cascada que los selectores en conjuntos de reglas, y toman la más alta prioridad en la cascada (a pesar de lo !important
). Por lo tanto, tienen prioridad incluso sobre los estados de pseudo-clase. Permitir pseudo-clases o cualquier otro selector en estilos en línea posiblemente introduzca un nuevo nivel de cascada, y con ello un nuevo conjunto de complicaciones.
Tenga en cuenta también que las revisiones muy antiguas de la especificación de atributos de estilo originalmente proponían permitir esto , sin embargo, se descartó, presumiblemente por la razón dada anteriormente, o porque implementarlo no era una opción viable.