DevHub Global Solutions | Educativo

Pseudoelementos ::before y ::after: usos creativos

Descubre el potencial creativo de ::before y ::after para añadir elementos decorativos, iconos y efectos visuales sin contaminar tu HTML. Técnicas avanzadas para dominar estos poderosos selectores.
Pseudoelementos ::before y ::after: usos creativos
Ejemplos visuales de pseudoelementos aplicados en diseño web

Fundamentos de Pseudoelementos

Conceptos esenciales para trabajar con ::before y ::after:

/* Sintaxis básica */
.elemento::before {
  content: ''; /* Obligatorio incluso si está vacío */
  display: block;
  width: 100%;
  height: 3px;
  background: linear-gradient(to right, #3498db, #e74c3c);
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}
Propiedad Requerida Descripción
content Define el contenido (texto, imagen, vacío)
display block, inline-block, flex, etc.
position Depende Para posicionamiento absoluto/relativo
z-index Opcional Control de capas cuando se superponen

Usos Creativos Avanzados

Técnicas profesionales para diseño con pseudoelementos:

Citas decoradas

Añadir comillas decorativas

Tooltips CSS-only

Información emergente sin JavaScript

Efectos de hover

Transiciones complejas en elementos

Formas complejas

Triángulos, círculos y otras figuras

/* Tooltip CSS-only */
[data-tooltip] {
  position: relative;
}

[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%) scale(0.9);
  opacity: 0;
  background: #333;
  color: white;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 14px;
  white-space: nowrap;
  pointer-events: none;
  transition: all 0.2s ease;
}

[data-tooltip]:hover::after {
  opacity: 1;
  transform: translateX(-50%) scale(1);
}

/* Triángulo CSS */
.tooltip::before {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 8px solid transparent;
  border-top-color: #333;
}

Técnicas Avanzadas

Combinaciones poderosas con otras propiedades CSS:

/* Efecto de imagen con superposición */
.card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(45deg, #8e44ad, #3498db);
  opacity: 0.8;
  mix-blend-mode: multiply;
  transition: opacity 0.3s ease;
}

.card:hover::before {
  opacity: 0.4;
}

/* Contador automático */
.seccion {
  counter-reset: item-counter;
}

.item {
  position: relative;
  padding-left: 40px;
}

.item::before {
  counter-increment: item-counter;
  content: counter(item-counter);
  position: absolute;
  left: 0;
  top: 0;
  width: 30px;
  height: 30px;
  background: #3498db;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: bold;
}

Usa attr() para crear tooltips dinámicos sin JavaScript: content: attr(data-tooltip)

MG

Sobre el autor

Diseñadora CSS especializada en técnicas creativas. Ganadora del CSS Design Awards y autora de 'CSS Mágico'.