Pseudoclases y Pseudoelementos (::before, ::after)
Aprende a estilizar estados interactivos del usuario con pseudoclases (:hover, :focus, :nth-child) y a generar elementos virtuales cosméticos con los pseudoelementos ::before y ::after.
Pseudoclases: Selección por Estado o Estructura
Una pseudoclase (indicada con un solo dos puntos :) selecciona un elemento cuando se encuentra en un estado dinámico específico o cumple una posición matemática dentro del árbol HTML.
| Pseudoclase | Tipo | Cuándo se Activa |
|---|---|---|
:hover |
Interacción | El puntero del ratón sobrevuela el elemento. |
:focus / :focus-visible |
Accesibilidad | Un campo de formulario o enlace recibe el foco del teclado o cursor. |
:active |
Interacción | El usuario mantiene presionado el botón del ratón sobre el elemento. |
:nth-child(even) / :nth-child(2n) |
Estructural | Selecciona filas pares de una tabla o lista (efecto cebra). |
:not(.excluir) |
Filtro de negación | Aplica a todos los elementos excepto a los que tengan la clase indicada. |
Pseudoelementos: Creación de Nodos Virtuales (::before y ::after)
Un pseudoelemento (indicado con doble dos puntos ::) permite estilizar partes de un elemento o inyectar contenido cosmético sin ensuciar el HTML original con etiquetas <div> o <span> innecesarias.
::before y ::after requieren la propiedad content: "". Si omites content, el navegador no creará el nodo visual en el árbol de renderizado.
/* Inserta una pequeña línea decorativa debajo de los títulos */
.titulo-linea {
position: relative;
display: inline-block;
}
.titulo-linea::after {
content: "";
position: absolute;
bottom: -6px;
left: 0;
width: 50%;
height: 3px;
background-color: #2563eb;
border-radius: 2px;
}
⚡ Lista Cebra con :nth-child y Subrayado Mágico con ::after
Pasa el cursor sobre los botones y observa el efecto de subrayado animado generado con ::after y las filas alternadas con :nth-child(even):
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Pseudoclases y Pseudoelementos</title>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
background-color: #f8fafc;
margin: 0;
padding: 25px;
color: #0f172a;
}
/* Subrayado animado con ::after */
.enlace-magico {
position: relative;
color: #2563eb;
text-decoration: none;
font-weight: bold;
font-size: 1.1rem;
padding-bottom: 4px;
display: inline-block;
margin-bottom: 25px;
}
.enlace-magico::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 3px;
background: #2563eb;
transition: width 0.3s ease;
border-radius: 2px;
}
.enlace-magico:hover::after {
width: 100%; /* El subrayado se despliega suavemente */
}
/* Lista tipo cebra con :nth-child */
.lista-cebra {
list-style: none;
padding: 0;
max-width: 480px;
border: 1px solid #cbd5e1;
border-radius: 8px;
overflow: hidden;
background: white;
}
.lista-cebra li {
padding: 12px 18px;
font-size: 0.95rem;
border-bottom: 1px solid #f1f5f9;
transition: background 0.2s ease;
}
/* Filas pares con color de fondo suave */
.lista-cebra li:nth-child(even) {
background-color: #f8fafc;
}
/* Efecto hover interactivo */
.lista-cebra li:hover {
background-color: #eff6ff;
color: #1e40af;
cursor: pointer;
}
/* Primer elemento destacado */
.lista-cebra li:first-child {
font-weight: bold;
}
</style>
</head>
<body>
<h3>Efecto de Subrayado Virtual con ::after</h3>
<a href="#" class="enlace-magico" onclick="return false;">
Pasa el cursor sobre este enlace interactivo »
</a>
<h3>Tabla de Cursos con :nth-child(even) y :hover</h3>
<ul class="lista-cebra">
<li>1. Fundamentos de CSS3 y Selectores (Primero)</li>
<li>2. El Modelo de Caja y Dimensionamiento</li>
<li>3. Flexbox Unidimensional y Alineación</li>
<li>4. CSS Grid Bidimensional y Fracciones</li>
<li>5. Animaciones fluidas con @keyframes</li>
</ul>
</body>
</html>
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de CSS3, Flexbox y Grid y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.