Text-decoration-line - Propriété CSS

text-decoration-line

Résumé des caractéristiques de la propriété text-decoration-line

Description rapide
Définit le type de décoration : souligné, barré, etc.
Statut
Standard
S'applique à
Tous les éléments.
Utilisable sur
HTML, SVG (1)
Valeurs prédéfinies
none | overline | underline | line-through | blink | grammar-error | spelling-error
Pourcentages
Ne s'appliquent pas.
Valeur initiale
none
Héritée par défaut
Non. (1)
Discrète : lors d'une animation, la propriété text-decoration-line passe d'une valeur à l'autre sans transition.
Module W3C
Module CSS - Décoration du texte
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: CR (document candidat à la recommandation)

(1) Propagation suivant un autre mécanisme, différent de l'héritage classique.
Voir à ce sujet le paragraphe sur le mécanise de propagation.

Syntaxe de text-decoration-line (schéma).

text-decoration-line - Syntax DiagramSyntax diagram of the text-decoration-line CSS property. none none underline underline overline overline line-through line-through blink blink spelling-error spelling-error grammar-error grammar-errortext-decoration-line:;text-decoration-line:;
Schéma syntaxique de la propriété text-decoration-line..
Les liens du schéma donnent accès à plus de détails.

Description de la propriété text-decoration-line.

La propriété text-decoration-line définit le type de décoration à ajouter au texte : souligné, surligné, barré, etc.

Soulignement   Surlignement   Rayure   Clignotement (1)

(1) Le clignotement est obsolète. Votre navigateur ne le gère probablement pas.

La propriété text-decoration-line est naturellement adaptable à la langue : le trait de décoration peut se retrouver à droite ou à gauche du texte si ce dernier est écrit verticalement (langues CJK par exemple).

Une présentation plus générale des décorations est disponible sur la page de la propriété résumée text-decoration.

Particularité concernant l'héritage des décorations.

Toutes les propriétés relatives aux décorations du texte ont un mode d'héritage inhabituel. Tout d'abord, l'héritage ne se fait que pour les éléments avec certains types d'affichage block, block, flex, grid, table, etc. Les éléments du type inline-block, inline-table, inline-grid, etc. n'héritent pas de la valeur de text-decoration-line.

De plus, lorsque text-decoration-line hérite sa valeur d'un ascendant, il n'est pas possible de surcharger cette valeur comme avec le mécanisme d'héritage classique. L'exemple ci-dessous illustre ce mécanisme. L'élément parent définit un soulignement du texte, dont le premier enfant hérite tout naturellement. Le deuxième enfant par contre tente de remplacer le soulignement par un surlignement. Et là ça ne marche pas : on n'a pas remplacé la décoration, mais on en a ajouté une deuxième.
Plus surprenant encore, l'enfant numéro 3 demande à ce qu'il n'y ait pas de décoration ( text-decoration-line:none; ). Et là encore le résultat n'est pas celui escompté : le texte est toujours souligné.

Tout se passe comme si un élément descendant ne pouvait pas supprimer les décorations définies par un parent. Une nouvelle propriété devrait permettre de résoudre ce problème : voir text-decoration-skip.

Parent
Enfant 1
Enfant 2
Enfant 3

Reportez-vous à la page Le mécanisme de propagation des décorations pour plus de détails sur la propagation des décorations aux éléments descendants.

Valeurs pour text-decoration-line.

  • text-decoration-line: none;

    Pas de décoration ajoutée.

    Texte non décoré
  • text-decoration-line: underline;

    La décoration est ajoutée en dessous du texte. cela peut être un trait (soulignement), un trait double, ou n'importe quelle autre possibilité définie par text-decoration-style.

    Notez que le trait est interrompu pour ne pas couper les jambages des lettres (voir text-decoration-skip).

    Soulignement
  • text-decoration-line: overline;

    La décoration est ajoutée au dessus du texte (surlignement).

    Surlignement
  • text-decoration-line: line-through;

    La décoration est ajoutée par dessus le texte. Cela peut-être utilisé pour rayer un mot ou une phrase par exemple.

    Rayure du texte
  • text-decoration-line: underline line-through;

    Plusieurs valeurs peuvent être énumérées, séparées par un espace. Le résultat est l'accumulation de toutes ces valeurs.
    Remarque : il ne sera pas possible de définir des couleurs ou des styles différents pour ces décorations.

    Soulignement et rayure
  • text-decoration-line: spelling-error; text-decoration-line: grammar-error;

    Ces deux valeurs appliquent une décoration identique à celles utilisées par le navigateur pour signaler une faute d'orthographe ou une faute de grammaire. Il s'agit généralement d'un trait ondulé rouge pour les fautes d'orthographes, et d'un trait ondulé vert pour les fautes de grammaire. Mais ces caractéristiques sont dépendantes du navigateur et du système d'exploitation.

    Avec ces deux valeurs, text-decoration-line peut interférer avec les autres propriétés relatives aux décorations, par exemple la couleur. Sur l'exemple ci-dessous, aucune couleur n'a a été demandée, le soulignement devrait donc être dans la couleur par défaut currentcolor. Or ce n'est pas le cas, et la propriété text-decoration-color sera inopérante pour changer ça.

    Faute d'orthographe
    Faute de grammaire
  • text-decoration-line: initial; (none) text-decoration-line: inherit; text-decoration-line: revert; text-decoration-line: revertLayer; text-decoration-line: unset;

    Liens vers la présentation de ces différentes valeurs : initial, inherit, revert, revert-layer, unset.

Possibilité d'animation de la propriété text-decoration-line.

L'animation ci-dessous explore les principales options de décoration existantes (souligné, rayé, surligné).

Démonstration

Simulateur avec la propriété text-decoration-line.

Ce simulateur vous permet d'explorer les différentes sortes de décoration, ainsi que leur prise en charge par le navigateur sur lequel vous visualisez cette page. La valeur blink ne sera à coup sûr pas reconnue, même si elle ne s'affiche pas en erreur.


Mode d'écriture :

text-decoration-line :
Un quetzal réfugié en kimono achète dix pyjamas verts sur le Web. (1)

(1) Pangramme anonyme.

Support de text-decoration-line.

text-decoration-line est une propriété reconnue par tous les navigateurs.
Notez que la valeur blink est obsolète : elle eset reconnue par les navigateurs pour des raisons de compatibilité mais ne produite aucun effet. Utilisez plutôt une animation.

Colonne 1
Support de la propriété text-decoration-line
Nouvelle syntaxe, depuis le niveau 4 de la spécification, définissant le type de trait de décoration.
Colonne 2
Support de la valeur blink pour la propriété text-decoration-line.
Attention le tableau est trompeur : la valeur est acceptée mais ne produit aucun effet.

Remarques :

(1) La valeur blink est acceptée mais n'a aucun effet.

1
Propriété
text-decoration-line
2
Valeur
blink
Estimation de la prise en charge globale.
96%
96%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Chrome

Edge

Opéra

Safari

Safari sur IOS

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

Samsung Internet

Firefox

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Évolution de la propriété text-decoration-line.

Voir aussi, au sujet des décorations de texte.

Le module de spécification Module CSS - Décoration du texte regroupe les attributs de décoration de texte : mise en emphase, ombrage, rayure, etc. La propriété text-decoration-line est décrite dans ce module, ainsi que les propriétés suivantes :

Propriétés :

text-decoration
Propriété résumée permettant de définir l'essentiel des paramètres de décoration de texte (couleur, type de trait...).
text-decoration-color
Définit la couleur du trait de décoration (souligné, rayure...).
Text-decoration-line
Définit le type de décoration : souligné, barré, etc.
text-decoration-skip
Propriété raccourcie définissant ce que les traits de décoration doivent sauter (espaces, jambage, etc.).
text-decoration-skip-box
Définit comment les décorations héritées des éléments parents doivent être appliquées.
text-decoration-skip-ink
Définit si les lignes de décoration (essentiellement le souligné) s'interrompent au niveau des jambages.
text-decoration-skip-inset
Définit comment les décorations de l'élément lui même (et non pas celles des éléments parents) doivent être appliquées.
text-decoration-skip-self
Définit si les décoration du ou des éléments parents doivent être appliquées à cet élément.
text-decoration-skip-spaces
Définit si les lignes de décoration (soulignement, rayure...) concernent les espaces.
text-decoration-style
Type de trait pour la décoration : plein, pointillé, etc.
text-decoration-thickness
Définit l'épaisseur des traits de décoration (pour le souligné, barré, surligné).
text-emphasis
Propriété résumée qui définit tous les paramètres de la mise en exergue d'un texte.
text-emphasis-color
Définit la couleur des caractères de mise en exergue.
text-emphasis-position
Définit la position des caractères de mise en exergue.
text-emphasis-skip
Définit si les mises en exergue doivent s'interrompre sur les espaces, les signes de ponctuation, etc.
text-emphasis-style
Spécifie le style de mise en exergue.
text-shadow
Cette propriété résumée définit tous les paramètres de l'ombre appliquée au texte : couleur, décalage, etc.).
text-underline-offset
Définit la position du trait de soulignement, par rapport à sa position de base.
text-underline-position
Définit l'emplacement des traits de soulignement.