Una pseudoclase no es una clase que se escriba en el HTML: es un estado que el navegador conoce por sí solo y que se puede aprovechar desde el CSS. Se escribe con dos puntos pegados al selector, sin espacio:
.boton { background: gris; } /* estado normal */
.boton:hover { background: azul; } /* con el ratón encima */
El HTML no cambia en absoluto. Lo único que se añade es una regla más en el CSS.
:link
<a> con
href.:visited
:hover
:hover de verdad. Nunca se pone en este estado información que haga
falta para entender la página o para poder navegarla: solo refuerzos visuales.Pruébalo: pasa el ratón por encima.
<a href="#" class="enlace">Un enlace</a> <span class="caja">Una caja cualquiera</span>
.enlace, .caja { display: inline-block; padding: 8px 16px; margin-right: 8px; border: 1px solid #7a7a9a; background: #e8e8f2; color: #2a2a55; text-decoration: none; font-family: Verdana, sans-serif; transition: all 150ms; } .enlace:hover, .caja:hover { background: #2a2a55; color: #fff; }
:active
Pruébalo: mantén pulsado el botón sin soltar.
<span class="boton">Mantén pulsado aquí</span>
.boton { display: inline-block; padding: 8px 16px; border: 1px solid #7a7a9a; background: #e8e8f2; color: #2a2a55; font-family: Verdana, sans-serif; transition: all 150ms; } .boton:hover { background: #2a2a55; color: #fff; } .boton:active { background: #88887a; transform: translateY(2px); /* como si se hundiera */ }
:link, :visited, :hover,
:active. Si se cambia, las últimas pisan a las primeras y
parece que el CSS no funciona. El truco para acordarse es
LoVe HAte: Link, Visited,
Hover, Active.
a:link { color: #2a2a55; }
a:visited { color: #6a3a7a; }
a:hover { color: #c0392b; }
a:active { color: #000000; }
El fallo típico es poner :hover antes que :visited: los
enlaces ya visitados dejan de reaccionar al ratón y nadie entiende por qué.:focus
outline: none sin poner nada en su
lugar deja la página inutilizable para esas personas.
a:focus {
outline: 3px solid #c0392b;
outline-offset: 2px;
}
<a href="#" class="enlace">Llega aquí con el tabulador</a>
.enlace { display: inline-block; padding: 8px 16px; color: #2a2a55; font-family: Verdana, sans-serif; } .enlace:focus { outline: 3px solid #c0392b; outline-offset: 2px; }
transition
.boton { background: #e8e8f2; transition: all 150ms; }
.boton:hover { background: #2a2a55; }
:hover. Es el error más
repetido. Puesta en el estado normal, la transición funciona al entrar y al salir;
puesta dentro del :hover, solo suaviza la entrada y el regreso es
seco.| Pseudoclase | Cuándo se activa | Cuánto dura |
|---|---|---|
:link | enlace sin visitar | hasta que se visita |
:visited | enlace ya visitado | mientras quede en el historial |
:hover | el ratón está encima | mientras no se aparte |
:active | se está pulsando | décimas de segundo |
:focus | se ha llegado con el tabulador | hasta pasar al siguiente |