Text-decoration en CSS: qué es, propiedades, valores y ejemplos

Text Decoration CSS con propiedades y ejemplos de subrayado personalizado

Text-decoration en CSS es la propiedad que permite añadir, eliminar y personalizar líneas decorativas en un texto, como subrayados, tachados o líneas superiores. Además de valores básicos como underline, none, overline y line-through, CSS permite controlar el color, grosor, estilo y separación de estas líneas.

Por ejemplo, para subrayar un texto basta con utilizar:

.texto {
  text-decoration: underline;
}

Sin embargo, text-decoration ofrece bastante más. En esta guía veremos su sintaxis, todos sus valores principales y ejemplos prácticos para controlar los subrayados y otras decoraciones de texto con CSS.

Índice

¿Qué es text-decoration en CSS?

text-decoration es una propiedad abreviada o shorthand de CSS utilizada para establecer la apariencia de las líneas decorativas de un texto.

Su uso más conocido es el subrayado:

p {
  text-decoration: underline;
}

Ejemplo de text-decoration underline en CSS aplicado a un párrafo completo

Pero también permite tachar texto, colocar una línea sobre él y combinar la posición de la línea con su color, estilo y grosor.

Por ejemplo:

.ejemplo {
  text-decoration: underline wavy #1742ff 2px;
}

En este caso estamos creando un subrayado ondulado, azul y de 2 píxeles de grosor utilizando una única declaración.

Ejemplo de text-decoration underline wavy en CSS con subrayado ondulado azul de 2 píxeles

La propiedad abreviada text-decoration permite definir conjuntamente text-decoration-line, text-decoration-color, text-decoration-style y text-decoration-thickness.

Sintaxis de text-decoration

La sintaxis puede ser muy sencilla:

text-decoration: underline;

o combinar varios componentes:

text-decoration: underline solid red 2px;

No es necesario especificarlos todos. Algunos ejemplos válidos son:

text-decoration: none;
text-decoration: underline;
text-decoration: line-through;
text-decoration: underline red;
text-decoration: underline wavy;
text-decoration: underline wavy red;
text-decoration: underline solid #1742ff 2px;

Esto hace que text-decoration sea especialmente práctica cuando queremos definir una decoración completa sin declarar varias propiedades CSS por separado.

Valores de text-decoration

Los valores más habituales determinan dónde aparecerá la línea decorativa.

Valor Resultado Uso habitual
none Sin decoración Eliminar subrayados
underline Línea debajo del texto Subrayados y enlaces
overline Línea encima del texto Efectos tipográficos
line-through Línea atravesando el texto Texto tachado o precios anteriores

text-decoration: none

Elimina las decoraciones de texto existentes:

a {
  text-decoration: none;
}

Ejemplo de text-decoration none en CSS para quitar el subrayado de un enlace

text-decoration: underline

Añade una línea debajo del texto:

.subrayado {
  text-decoration: underline;
}

Ejemplo de text-decoration underline en CSS para aplicar un subrayado al texto

text-decoration: overline

Coloca la línea encima del texto:

.linea-superior {
  text-decoration: overline;
}

Ejemplo de text-decoration overline en CSS para añadir una línea sobre el texto

text-decoration: line-through

Atraviesa el texto con una línea:

.tachado {
  text-decoration: line-through;
}

Es frecuente encontrarlo en interfaces donde se muestra, por ejemplo, un valor anterior junto a uno nuevo.

Ejemplo de text-decoration line-through en CSS para mostrar texto tachado

Cómo subrayar texto con CSS

La forma más sencilla de subrayar texto con CSS consiste en utilizar text-decoration: underline:

.texto-subrayado {
  text-decoration: underline;
}

Después podemos personalizar el resultado utilizando otras propiedades:

.texto-subrayado {
  text-decoration-line: underline;
  text-decoration-color: #1742ff;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

También podemos expresarlo de forma más compacta:

.texto-subrayado {
  text-decoration: underline solid #1742ff 2px;
  text-underline-offset: 4px;
}

Esta segunda técnica resulta especialmente útil cuando queremos que el subrayado forme parte del diseño visual de una web y no utilizar simplemente el estilo predeterminado del navegador.

Cómo quitar el subrayado de un enlace con CSS

Para quitar el subrayado de un enlace con CSS se utiliza text-decoration: none sobre el elemento <a>:

a {
  text-decoration: none;
}

También podemos aplicarlo únicamente a una clase concreta:

a.enlace-sin-subrayado {
  text-decoration: none;
}

Sin embargo, eliminar el subrayado de todos los enlaces merece cierta precaución. El subrayado ayuda a distinguir visualmente qué textos son interactivos, por lo que si se elimina conviene proporcionar otra señal suficientemente clara, especialmente pensando en la accesibilidad.

Una alternativa habitual consiste en ocultarlo inicialmente y recuperarlo al pasar el cursor o utilizar el foco del teclado:

a {
  text-decoration: none;
}

a:hover,
a:focus-visible {
  text-decoration: underline;
}

Cómo cambiar el color del subrayado

text-decoration-color permite establecer un color para la decoración diferente al color del propio texto.

.ejemplo {
  color: #222;
  text-decoration: underline;
  text-decoration-color: #1742ff;
}

El texto será oscuro mientras que su subrayado tendrá el color azul indicado.

También podemos utilizar la propiedad abreviada:

.ejemplo {
  text-decoration: underline #1742ff;
}

Ejemplo de text-decoration-color en CSS para cambiar el color del subrayado a azul

Cómo cambiar el grosor del subrayado

La propiedad text-decoration-thickness controla el grosor de la línea decorativa.

.subrayado-grueso {
  text-decoration: underline;
  text-decoration-thickness: 3px;
}

Puede utilizar valores como píxeles, unidades relativas o from-font, que permite utilizar la información proporcionada por la propia tipografía cuando está disponible.

.subrayado {
  text-decoration: underline;
  text-decoration-thickness: 0.12em;
}

Las unidades relativas como em son interesantes cuando queremos que el grosor acompañe proporcionalmente al tamaño del texto.

Estilos de subrayado en CSS

text-decoration-style permite cambiar el aspecto de la línea. Los principales estilos son:

  • solid: línea continua.
  • double: línea doble.
  • dotted: línea de puntos.
  • dashed: línea discontinua.
  • wavy: línea ondulada.

Por ejemplo:

.ondulado {
  text-decoration: underline wavy #1742ff;
}

O utilizando propiedades independientes:

.ondulado {
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #1742ff;
}

Comparativa de estilos text-decoration-style en CSS: solid, double, dotted, dashed y wavy

Cómo separar el subrayado del texto

Uno de los detalles que más pueden mejorar visualmente un subrayado es controlar la distancia entre la línea y las letras.

Para ello existe text-underline-offset:

.enlace {
  text-decoration: underline;
  text-underline-offset: 4px;
}

Un desplazamiento moderado puede hacer que los enlaces y titulares sean más legibles, especialmente cuando se utilizan subrayados relativamente gruesos.

text-decoration-skip-ink es otra propiedad relacionada. Permite controlar si el subrayado debe evitar determinadas partes de los caracteres que cruzan la línea, como los descendentes de letras como la «g», la «j» o la «p».

.texto {
  text-decoration: underline;
  text-decoration-skip-ink: auto;
}

Propiedades de text-decoration

Conviene distinguir entre las propiedades que forman parte de la propiedad abreviada text-decoration y otras propiedades relacionadas con la representación de los subrayados.

Propiedad Función Ejemplo
text-decoration-line Determina la posición o tipo de línea underline
text-decoration-color Define el color de la decoración #1742ff
text-decoration-style Define el estilo de la línea wavy
text-decoration-thickness Controla el grosor 2px
text-underline-offset Separa el subrayado del texto 4px
text-decoration-skip-ink Controla cómo cruza el subrayado los caracteres auto

Las cuatro primeras —line, color, style y thickness— pueden establecerse mediante el shorthand text-decoration. text-underline-offset y text-decoration-skip-ink son propiedades relacionadas, pero no forman parte de ese shorthand.

Ejemplos prácticos de text-decoration

Enlace con un subrayado moderno

a {
  color: #1742ff;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

Subrayado que cambia al pasar el cursor

a {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 4px;
}

a:hover {
  text-decoration-color: currentColor;
}

El enlace conserva la decoración, pero la línea pasa de transparente al color actual del texto cuando el usuario coloca el cursor sobre él.

Texto tachado

.precio-anterior {
  text-decoration: line-through;
}

Subrayado ondulado

.destacado {
  text-decoration: underline wavy #1742ff 2px;
  text-underline-offset: 5px;
}

Combinar varias líneas

text-decoration-line permite utilizar más de un tipo de decoración simultáneamente:

.doble-decoracion {
  text-decoration-line: underline overline;
  text-decoration-color: #1742ff;
}

No será algo habitual en una interfaz convencional, pero demuestra que las decoraciones de texto de CSS son bastante más flexibles que un simple underline.

Accesibilidad y buenas prácticas

Las decoraciones no son únicamente una cuestión estética. También pueden comunicar información al usuario.

  • No utilices únicamente el color para diferenciar información importante.
  • Evita eliminar indiscriminadamente el subrayado de todos los enlaces.
  • Si eliminas una señal visual, proporciona otra forma clara de identificar el elemento interactivo.
  • Mantén suficiente contraste entre el texto, la decoración y el fondo.
  • Comprueba los estados :hover y :focus-visible cuando personalices enlaces.
  • Evita subrayados excesivamente gruesos o cercanos al texto si dificultan la lectura.

En proyectos de diseño web, estos pequeños detalles tipográficos pueden parecer secundarios, pero forman parte de una interfaz coherente, legible y fácil de utilizar.

Compatibilidad con navegadores

text-decoration cuenta con un soporte muy amplio en los navegadores actuales. Algunas de sus capacidades más avanzadas se incorporaron progresivamente, por lo que en proyectos que necesiten compatibilidad con navegadores antiguos conviene comprobar individualmente las propiedades utilizadas.

Para consultar la definición, sintaxis y compatibilidad actualizadas puedes utilizar la documentación de MDN Web Docs sobre text-decoration.

Cuando desarrolles una interfaz para producción, también es recomendable probar los estilos en distintos navegadores, tamaños de pantalla y dispositivos. La apariencia final de una decoración puede variar ligeramente según la tipografía y el motor de renderizado.

Preguntas frecuentes sobre text-decoration

¿Qué es text-decoration en CSS?

text-decoration es una propiedad abreviada de CSS que permite aplicar decoraciones mediante líneas al texto. Puede utilizarse para crear subrayados, tachados y líneas superiores, además de controlar características como el color, estilo y grosor de la decoración.

¿Cómo subrayar texto en CSS?

La forma más sencilla es utilizar text-decoration: underline; sobre el elemento o clase que quieras subrayar.

.texto {
  text-decoration: underline;
}

¿Cómo quitar el subrayado de un enlace en CSS?

Utiliza text-decoration: none;:

a {
  text-decoration: none;
}

Recuerda que, si eliminas el subrayado, el enlace debería seguir siendo fácilmente reconocible como elemento interactivo.

¿Cómo cambiar el color del subrayado en CSS?

Utiliza text-decoration-color. Por ejemplo, text-decoration-color: red;. También puedes incluir el color dentro de la propiedad abreviada text-decoration.

¿Cómo cambiar el grosor de un subrayado?

Utiliza text-decoration-thickness y establece el grosor deseado, por ejemplo text-decoration-thickness: 2px;.

¿Cómo separar el subrayado del texto?

La propiedad text-underline-offset controla la distancia entre el texto y su subrayado. Por ejemplo, text-underline-offset: 4px;.

¿Cómo hacer un subrayado ondulado en CSS?

Puedes utilizar text-decoration-style: wavy; o escribirlo mediante la propiedad abreviada:

.texto {
  text-decoration: underline wavy;
}

¿Cuál es la diferencia entre text-decoration y text-decoration-line?

text-decoration es una propiedad abreviada que permite definir conjuntamente línea, color, estilo y grosor. text-decoration-line controla específicamente qué línea decorativa se aplica, por ejemplo underline, overline o line-through.

Conclusión

Text-decoration en CSS va mucho más allá de añadir un simple subrayado. Con una misma familia de propiedades podemos controlar dónde aparece la línea, su color, grosor y estilo, además de ajustar detalles como la separación respecto al texto.

Para usos básicos, declaraciones como text-decoration: underline; y text-decoration: none; suelen ser suficientes. Cuando el diseño requiere mayor control, propiedades como text-decoration-thickness, text-decoration-color o text-underline-offset permiten integrar la decoración dentro del sistema visual de la web sin recurrir a JavaScript.

Si estás trabajando en una interfaz completa, estas decisiones forman parte de un conjunto mucho mayor de aspectos relacionados con la tipografía, la accesibilidad, la estructura HTML y el CSS. Puedes encontrar más contenidos prácticos en la categoría de CSS de Fonsi.

Fuentes y documentación

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *