¿Qué son los pseudo-elementos CSS como y cómo los utilizo?

Pseudo-elementos CSS (::before, ::after) estilizan partes de un elemento o añaden contenido sin HTML extra. Descubre cómo usar ::first-letter y más.

LucusHost, el mejor hosting

Los pseudo-elementos en CSS son palabras clave que se añaden a un selector para permitirte aplicar estilos a una parte específica de un elemento seleccionado o para insertar contenido antes o después del contenido real de un elemento, sin necesidad de añadir marcado HTML adicional. Se distinguen de las pseudo-clases (que seleccionan elementos en un estado particular) porque los pseudo-elementos actúan como si estuvieras añadiendo un nuevo elemento «virtual» al DOM con fines de estilización.

La sintaxis moderna y recomendada para los pseudo-elementos utiliza doble dos puntos (::) para diferenciarlos claramente de las pseudo-clases (que usan un solo dos puntos :). Aunque los navegadores suelen soportar la sintaxis de un solo dos puntos para los pseudo-elementos más antiguos (:before, :after, :first-letter, :first-line) por razones de compatibilidad con CSS2, es mejor usar :: para los nuevos y, por consistencia, para todos.

Pseudo-elementos comunes y cómo se utilizan:

  1. ::before:
    • Crea un pseudo-elemento que se convierte en el primer hijo del elemento seleccionado.
    • Se utiliza comúnmente junto con la propiedad content para insertar contenido (texto, símbolos, imágenes pequeñas mediante url(), o incluso una cadena vacía para crear formas decorativas) antes del contenido principal del elemento.
  2. ::after:
    • Crea un pseudo-elemento que se convierte en el último hijo del elemento seleccionado.
    • También requiere la propiedad content y se usa para insertar contenido después del contenido principal del elemento.
    • Es muy útil para añadir elementos decorativos, iconos (como flechas en enlaces externos), o para implementar técnicas como el "clearfix" (aunque esto es menos necesario con Flexbox y Grid).
  3. ::first-letter:
    • Aplica estilos a la primera letra del contenido de texto de un elemento de bloque.
    • Ideal para crear efectos de capitular (drop caps) o para destacar la primera letra de un párrafo.
  4. ::first-line:
    • Aplica estilos a la primera línea del contenido de texto de un elemento de bloque. La longitud de la "primera línea" depende de factores como el ancho del elemento, el tamaño de la fuente, etc.
  5. ::selection:
    • Aplica estilos a la porción del documento que ha sido seleccionada (resaltada) por el usuario con el ratón o el teclado. Solo se pueden aplicar unas pocas propiedades CSS aquí, principalmente color, background-color, y text-shadow.
  6. ::marker:
    • Permite estilizar el marcador (viñeta o número) de los elementos de lista (<li>). Se pueden cambiar su color, font-size, content, etc.
  7. ::placeholder:
    • Estiliza el texto de marcador de posición (placeholder) en los campos de formulario <input> y <textarea>.

Los pseudo-elementos son una herramienta muy útil porque te permiten añadir detalles visuales y contenido cosmético sin saturar tu HTML con elementos extra solo para fines de presentación. No forman parte del DOM real, pero el navegador los renderiza como si lo fueran.

¿Tienes alguna duda o pregunta?Envía el formulario y procuraré darle respuesta
Formulario de pregunta
Responsable » Jose Ramón Bernabeu Guillem. Finalidad » Ponernos en contacto. Legitimación » Tu consentimiento al marcar la casilla verificación. Destinatarios » Los datos que proporciones estarán ubicados en los servidores de LucusHost, proveedor de hosting de este sitio. Derechos » por supuesto tendrás derecho, entre otros, a acceder, rectificar, limitar y suprimir tus datos.
Si creees que esto puede ser de utilidad a alguien más, pues... compártelo que es gratis 🙂
Sitio alojado en un servidor verde según The Green Web Foundation

LucusHost, el mejor hosting

Aviso legal | Condiciones de contratación | Política de privacidad | Política de cookies
© 2017-2025 · Jose R. Bernabeu ·
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram