0 Comentarios
A veces, los pequeños detalles marcan una gran diferencia. Y en diseño web, eso es especialmente cierto. Seguro que más de una vez has visto en una página ese iconito elegante antes de un enlace, o una etiqueta flotante encima de una imagen, o quizás un subrayado que aparece con una animación sutil al pasar el ratón… Pues todo eso, y mucho más, se puede hacer con dos herramientas tan sencillas como potentes: los pseudoelementos ::after y ::before en CSS.
Si estás empezando en el mundo del diseño web o ya llevas un tiempo trasteando con CSS, este artículo es para ti. Vamos a explicarte de forma clara, directa y con ejemplos reales cómo usar after y before para mejorar tus diseños sin añadir HTML extra ni complicarte la vida con JavaScript. Porque sí, puedes hacer magia solo con CSS.
Antes de meternos en faena, vamos con lo básico. ::after y ::before son lo que en CSS se conoce como pseudoelementos. ¿Y eso qué significa? Pues, ni más ni menos, que son elementos "falsos" o "virtuales" que se añaden a otros elementos del DOM, pero sin existir realmente en el HTML. Es decir, los puedes estilizar como si fueran elementos reales, pero no necesitas escribirlos en el código HTML.
::before añade contenido antes del contenido real del elemento.
::after lo hace después.
Y ambos se crean exclusivamente con CSS. Para el navegador, es como si existieran, pero tú no los ves en el código fuente. Esto permite que podamos enriquecer nuestros diseños sin ensuciar el marcado HTML, algo que a largo plazo se agradece mucho.
Aunque su sintaxis es muy similar y a veces pueden parecer intercambiables, la diferencia entre ::before y ::after radica en su posición relativa al contenido del elemento al que se aplican.
::before aparece justo antes del contenido principal.
::after se coloca justo después del contenido.
¿Y por qué importa esto? Bueno, imagina que estás añadiendo un icono a un botón: si lo quieres antes del texto, usas ::before; si lo prefieres después, usas ::after. Así de simple… y así de útil.
Los pseudoelementos son una herramienta muy versátil, pero no hay que usarlos a lo loco. Como todo en diseño web, hay momentos ideales para sacarle partido y otros en los que conviene buscar otra solución.
Añadir decoraciones visuales (líneas, flechas, sombras...).
Incluir iconos o símbolos sin HTML ni imágenes.
Simular elementos adicionales como etiquetas o badges.
Animaciones y efectos hover creativos.
Trucos de maquetación responsive.
Código más limpio: no saturas tu HTML con elementos extra.
Mejor rendimiento: cargas menos elementos y evitas scripts innecesarios.
Más fácil de mantener: todo el estilo está centralizado en el CSS.
Perfecto para efectos decorativos: sin impacto semántico.
Vale, vamos al grano. ¿Cómo se escriben y cómo se usan bien?
.elemento::before {
content: "★";
color: gold;
margin-right: 8px;
}
Sí, así de fácil. Pero ojo, la clave está en la propiedad content.
Es obligatoria. Si no la pones, el pseudoelemento no se mostrará. Puedes usar texto, cadenas vacías (""), o incluso imágenes como fondo. También puedes usar attr() para insertar el valor de un atributo.
a::after {
content: " (enlace externo)";
}
Una vez definido el contenido, puedes estilizar el pseudoelemento como cualquier otro:
font-size, color, background, width, height…
position: absolute si quieres colocarlo encima o fuera del flujo.
transform, opacity, transition para animaciones.
Recuerda: es como si tuvieses un mini-div más para jugar.
Vamos con lo que de verdad importa: casos reales y cómo hacerlos. Si algo no te queda claro, copia y prueba. Y si te sale mal, no pasa nada. Prueba otra vez.
.boton-descarga::before {
content: "⬇️";
margin-right: 5px;
}
Este simple truco da un toque visual al botón sin usar iconos externos ni SVG.
.enlace-animado::after {
content: "";
display: block;
height: 2px;
background: #000;
transform: scaleX(0);
transition: transform 0.3s ease;
}.enlace-animado:hover::after {
transform: scaleX(1);
}
Perfecto para darle vida a tu menú o a enlaces importantes.
.imagen::after {
content: "NUEVO";
position: absolute;
top: 10px;
right: 10px;
background: red;
color: white;
padding: 4px 8px;
font-size: 12px;
border-radius: 4px;
}
Ideal para ecommerce, promociones o cualquier llamada de atención visual.
Olvidar content: sin él, no aparece nada. Recuérdalo siempre.
No establecer position: relative al elemento padre: si vas a usar posicionamiento absoluto en ::before o ::after, necesitas que el padre esté posicionado.
Usar pseudoelementos para contenido importante: ¡no lo hagas! Para cosas visuales, sí. Para contenido real, no.
Abusar de ellos: como toda herramienta potente, hay que usarla con cabeza.
Por suerte, hoy en día los pseudoelementos son totalmente compatibles con todos los navegadores modernos, incluidos Edge, Chrome, Firefox y Safari. Incluso Internet Explorer (hasta cierto punto) los soporta.
Ahora bien, en términos de accesibilidad, los screen readers no siempre interpretan bien el contenido generado con content, sobre todo si es importante. Por eso no deberías usarlos para transmitir información crítica, sino solo como apoyo visual.
Como ves, ::after y ::before no son solo curiosidades del CSS. Son auténticas navajas suizas para cualquier diseñador o desarrollador web. Con muy poco código puedes conseguir efectos visuales impresionantes, mantener tu HTML limpio y ganar en rendimiento.
Si estás empezando, tómate tu tiempo para experimentar. Prueba, rompe cosas, vuelve a probar. Y si ya tienes algo de experiencia, quizás es momento de llevar tus diseños al siguiente nivel con efectos más complejos o animaciones finas.
Y si necesitas ayuda para aplicar estos trucos en tu propio sitio, o simplemente quieres un diseño web profesional hecho con mimo, código limpio y estrategia, echa un vistazo a lo que hacemos en nuestro servicio de diseño web en Alicante. Nos encantará ayudarte a transformar tu presencia digital con cariño, detalle y un poco de magia CSS.

¿Qué te ha parecido este artículo?