Guía educativa de text-decoration
Decorar el texto sin perder legibilidad
Un subrayado comunica una acción y un tachado puede expresar un cambio. Aprende a elegir línea, estilo, color y grosor, separar la decoración de los caracteres y mantener enlaces reconocibles.
Modelo mental
La decoración se dibuja sobre el texto de cada línea; no es un borde de la caja ni cambia los caracteres.
- 1 · Tinta de los caracteresLa fuente dibuja las letras y sus descendentes, como los de g o y.
- 2 · Grosor de la decoracióntext-decoration-thickness controla el trazo, no el peso de las letras.
- 3 · Separación del subrayadotext-underline-offset desplaza underline; no mueve overline ni line-through.
text-decoration añade trazos al texto. underline coloca una línea debajo, overline encima y line-through a través de las letras en escritura horizontal. Puedes combinar esas líneas con espacios. none no crea una decoración nueva; no se combina con las otras líneas.
El aspecto no añade semántica HTML. Un texto subrayado no se convierte en enlace: usa a con href para navegar. Si el tachado significa contenido eliminado, usa del; para contenido que ya no es válido, s puede ser adecuado. Explica el cambio con palabras cuando sea necesario.
Líneas, estilos y grosor
Elige qué dibujar y después cómo dibujarlo.
solid, double, dotted, dashed y wavy cambian el patrón del trazo. Todas las líneas de una misma decoración comparten estilo, color y grosor. Para un subrayado sólido y un overline de puntos, aplica decoraciones en elementos distintos.
text-decoration-color es independiente de color: cambia la línea, no las letras. Su valor inicial currentColor sigue el color del texto del elemento que origina la decoración. Conserva contraste suficiente en texto, trazo y fondo, también en oscuro.
auto deja el grosor al navegador. from-font consulta la métrica de la fuente y usa auto si no existe. Una longitud fija el grosor: px, rem o em expresan referencias distintas; 0.08em se relaciona con el tamaño del texto. Los porcentajes también se calculan respecto a 1em.
text-decoration: underline solid currentColor 0.08em;text-decoration-line: underline;
text-decoration-style: solid;
text-decoration-color: currentColor;
text-decoration-thickness: 0.08em;El shorthand restablece las piezas omitidas. Si después de un grosor personalizado escribes text-decoration: underline, el grosor vuelve a auto. Usa text-decoration-line para cambiar solo la línea, o vuelve a expresar la decoración completa.
Cinco estilos con el mismo texto y grosor
solid · Tipografía con g, j, p e y
double · Tipografía con g, j, p e y
dotted · Tipografía con g, j, p e y
dashed · Tipografía con g, j, p e y
wavy · Tipografía con g, j, p e y
Separación y continuidad del trazo
La distancia a las letras y las interrupciones alrededor de su tinta son decisiones diferentes.
text-underline-offset separa el subrayado de su posición original. Usa una distancia moderada y revisa varias líneas: aumentar el offset no reserva espacio en el layout. Un valor excesivo puede acercar el trazo a la línea siguiente; mantén line-height legible y evita clipping.
text-decoration-skip-ink: auto permite interrumpir underline y overline cerca de la tinta. none mantiene el trazo al cruzar los caracteres. No controla line-through. El resultado depende de la fuente y de la posición: si no hay cruces, auto y none pueden verse iguales.
Evitar tinta, cruzarla o separar el subrayado
skip-ink: auto · offset: auto
Tipografía con g, j, p e y
skip-ink: none · offset: auto
Tipografía con g, j, p e y
skip-ink: auto · offset: 0.25em
Tipografía con g, j, p e y
Offset y skip-ink quedan fuera del shorthand y se declaran por separado. No sustituyas automáticamente el subrayado por border-block-end: un borde sigue la caja y no reproduce el dibujo alrededor de los caracteres ni de los fragmentos de un enlace multilínea.
Decoración del padre y texto descendiente
La continuidad visual no equivale a la herencia normal de una propiedad.
La decoración del padre se dibuja también sobre su texto descendiente inline. Aunque text-decoration no se hereda, un span con none no borra el trazo que origina el padre. El hijo puede añadir su propia decoración; no cambia el estilo o color de la que ya viene del padre.
Por qué none no elimina el subrayado del padre
Decoración en el padre · el hijo usa none
Este texto incluye un fragmento central dentro de la frase.
Decoración solo en los fragmentos elegidos
Este texto incluye un fragmento central dentro de la frase.
Aplica la decoración al elemento que debe originarla, en lugar de intentar cancelarla desde sus hijos. Los elementos atómicos inline, como inline-block, tienen límites de propagación distintos; cambiar display solo para ocultar un trazo también altera el layout y los saltos de línea.
Enlaces reconocibles en un párrafo
La decoración ayuda a descubrir la navegación antes de pasar el puntero o recibir foco.
Mantén una señal visible además del color en enlaces dentro de texto. Un subrayado persistente es una opción clara para usuarios que no distinguen los colores. Hover puede reforzarlo, pero no debe ser la única forma de descubrir el enlace; el foco necesita su propio contorno.
Un enlace real con subrayado y foco visible
Para alinear cajas tipográficas, consulta la guía de text-box y conserva espacio para acentos y descendentes.
Prueba nombres largos, saltos de línea, fuentes de fallback y texto ampliado. Un trazo muy grueso o cercano dificulta leer; una línea demasiado alejada pierde asociación con el enlace. Revisa contraste y legibilidad en los temas y navegadores de destino.
Errores frecuentes
Comprueba la línea activa, la cascada y el origen del trazo.
El estilo o el grosor no muestra ninguna línea
- Resultado esperado
- Ver un subrayado personalizado.
- Causa
- text-decoration-line permanece en none; estilo y grosor no activan una línea.
- Solución
- Declara underline u otra línea junto con el estilo y el grosor.
none en el hijo no quita el subrayado
- Resultado esperado
- Dejar un fragmento sin decoración.
- Causa
- La decoración se origina en el padre y se dibuja sobre el descendiente inline.
- Solución
- Retira la decoración del padre y aplícala solo a los fragmentos necesarios.
El grosor personalizado vuelve a auto
- Resultado esperado
- Cambiar la línea conservando el grosor.
- Causa
- Un shorthand posterior omite thickness y restablece su valor inicial.
- Solución
- Cambia text-decoration-line o incluye el grosor en el shorthand final.
El tachado no se mueve con offset
- Resultado esperado
- Separar line-through de las letras.
- Causa
- text-underline-offset solo afecta a underline, no a las otras líneas.
- Solución
- Usa offset para subrayados; revisa fuente y grosor del tachado sin esperar ese desplazamiento.
El enlace solo se distingue al pasar el puntero
- Resultado esperado
- Reconocer la navegación en un párrafo.
- Causa
- Se ha eliminado la señal persistente y se depende de hover o del color.
- Solución
- Mantén subrayado u otra señal visible y un foco de teclado independiente.
Soporte y compatibilidad
Comprueba cada propiedad y valor, además del shorthand básico.
MDN identifica text-decoration, thickness, underline-offset y skip-ink como ampliamente disponibles, con diferencias en algunas partes. Estas recetas usan líneas y estilos habituales y skip-ink auto/none. No extrapoles ese soporte a all ni a sintaxis nuevas del borrador.
La receta de enlace parte de text-decoration: underline y añade grosor y separación en declaraciones independientes. Si una mejora se ignora, se conserva el subrayado base. @supports comprueba sintaxis; no garantiza dibujo idéntico ni legibilidad con cualquier fuente.