2010-01-01 5 views
8

¿No es redundante el pseudoclass "a: link" con "a" cuando se coloca en ese orden (: link,: visited,: hover,: active)? ¿Por qué poner esto:¿Por qué molestarse con la "L" en los estilos de enlace "LVHA"?

a:link {color: blue;} 
a:visited {color: purple;} 
a:hover {color: red;} 
a:active {color: yellow;} 

Cuando usted podría poner esto:

a {color: blue;} 
a:visited {color: purple;} 
a:hover {color: red;} 
a:active {color: yellow;} 

Lo pregunto porque el primero es el ejemplo más común que veo del orden LVHA. La segunda versión tiene la misma especificidad, por lo que funciona de la misma manera. ¿Es solo una cuestión organizativa dejar en claro qué cambia cuando cambia el estado del enlace? ¿Qué me estoy perdiendo?

Respuesta

2

De acuerdo con la W3C specification:

El: enlace aplica pseudo-clase para enlaces que aún no han sido visitados.

: enlace le permite diseñar enlaces no visitados dejando otros estilos de enlace no afectados.

+0

Los enlaces no visitados también se diseñan con {...} – Harmen

+0

Claro, pero un {...} cambia el estilo de todas las pseudo clases. Solo "a {color: red}" haría que los enlaces visitados, no visitados, activos y activos aparezcan con el color de primer plano rojo, mientras que "a: link {color: red}" solo haría que los enlaces no visitados aparezcan con el color de primer plano rojo. – Sofahamster

+0

Pero la pregunta es específica para los otros 3 estados que se definen también. –

4

El pseudo-classes :link and :visited son sólo para los enlaces (A elementos con un atributo href):

  • El: enlace pseudo-clase se aplica para los enlaces que aún no han sido visitados.
  • La pseudo clase visitada se aplica una vez que el usuario ha visitado el enlace.

[...]

El documento de lenguaje determina qué elementos son anclas origen de hipervínculo. Por ejemplo, en HTML4, las pseudo-clases de enlace se aplican a los elementos A con un atributo "href".

Pero el pseudo-classes :hover, :active and :focus no son sólo para los enlaces, pero también se puede aplicar en otros elementos como input o textarea.

Para que sea correcto y solo seleccione A elementos que en realidad son enlaces, necesitará usar a:link. Y para seleccionar solo los enlaces que se ciernen, necesitará usar a:link:hover y no solo a:hover.

+0

+1 por mencionar el diff v.: Link y: link: hover. http://jsbin.com/iyuyo/edit – bendewey

Cuestiones relacionadas