White-space - Propriété CSS
Résumé des caractéristiques de la propriété white-space
normal | pre | pre-wrap | pre-line | nowrap | break-spacesnormalwhite-space passe d'une valeur à l'autre sans transition.Schémas syntaxiques de white-space.
white-spaceCliquez sur les liens du schéma pour plus de précisons sur les valeurs.
Description la propriété white-space.
La propriété white-space définit comment représenter les espaces successifs et les retours à la ligne.
Classiquement, HTML ignore les espaces successifs et provoque les retours à la ligne automatiques du texte entre les mots.
Cette solution permet à l'auteur de présenter le code HTML (indentation) sans que cela perturbe le résultat affiché par le navigateur.
Cependant ce fonctionnement peut être gênant dans certains cas : présentation de code informatique, alignement vertical de colonnes, etc.
Par défaut les navigateurs appliquent les règles suivantes au code HTML :
- Les retours à la ligne dans le code HTML sont remplacés par un espace.
- Les tabulations sont remplacées par un espace.
- Les espaces successifs sont remplacés par un espace unique.
Comme on le voit sur les exemples ci-dessous, ce fonctionnement est parfait pour du texte classique mais inutilisable par exemple pour afficher
du code informatique. La propriété white-space résout ce problème.
div
Il est fréquent d'insérer des
espaces, des retours à la ligne
⇥ ou des tabulations pour rendre
⇥ le code plus lisible.
/div
➤
Il est fréquent d'insérer des espaces, des retours à la ligne ou des tabulations pour rendre le code plus lisible.
div
// Contrôle d'accès :
⇥ if( pwd != '' ) {
⇥ ⇥ exit();
⇥ }
/div➤
// Contrôle d'accès : if( pwd != '' ) { exit(); }
Nouvelle définition de white-space (module texte niveau 4).
Une nouvelle définition est à l'étude, mais pas encore stabilisée
(voir Module CSS Texte - Niveau 4).
white-space deviendra une propriété résumée pour regrouper les valeurs des trois propriétés suivantes :
white-space-collapse: autorise ou non la suppression des espaces multiples.white-space-trim: autorise ou non la suppression des espaces au début ou à la fin du texte.text-wrap-mode: autorise ou non les retours à la ligne automatiques.
Les valeurs actuelles de white-space ne changeront pas mais auront un équivalent dans les propriétés détaillées, conformément au
tableau ci-dessous.
white-space | white-space-collapse | text-wrap-mode |
|---|---|---|
normal | collapse | wrap |
pre | preserve | nowrap |
pre-wrap | preserve | wrap |
pre-line | preserve-breaks | wrap |
Voici un résumé de l'effet des différentes valeurs pour white-space :
white-space |
Saut de ligne dans le source | Espace et tabulation (2) | Retour à la ligne automatique (3) | Espace en fin de ligne | Autre séparateur en fin de ligne |
|---|---|---|---|---|---|
normal |
Fusionné (1) | Fusionné | Autorisé | Retiré | Suspension (4) |
pre |
Préservé | Préservé | Interdit | Préservé | Préservé |
nowrap |
Fusionné (1) | Fusionné | Interdit | Retiré | Suspension (4) |
pre-wrap |
Préservé | Preserve | Autorisé | Suspension (4) | Suspension (4) |
break-spaces |
Préservé | Préservé | Autorisé | Renvoi (5) | Renvoi (5) |
pre-line |
Préservé | Fusionné | Autorisé | Retiré | Suspension (4) |
Valeurs pour white-space.
Les exemples suivants sont tous basés sur un texte écrit comme ceci dans le code source :
divCe texte est écrit avec
trois espaces dans le code source.
/div
- white-space: normal;
Valeur par défaut. Les espaces successifs sont affichés comme des espaces uniques. Les retours à la ligne automatiques se font en fonction de la largeur de l'élément (lorsque la ligne de texte est plus grande que la largeur de l'élément). Les retours à la ligne qui figurent dans le code source du document sont remplacé par un espace. Les balises br sont respectées.
Ce texte est formaté avec trois espaces dans le code source. - white-space: nowrap;
Les espaces successifs sont affichés comme des espaces uniques.
Les retours à la ligne automatiques ne se font pas, et les retours figurant dans le code HTML sont ignorés (le seul retour à la ligne possible est donc le retour forcé avec une balise br).Le texte peut donc déborder sur la droite de l'élément si les lignes sont plus longue que la largeur de ce dernier.
Ce texte est formaté avec trois espaces dans le code source. - white-space: pre;
Les espaces multiples et les retours à la ligne se font comme ils apparaissent dans le code HTML.
Aucun retour à la ligne automatique n'est ajouté. Le texte peut donc déborder sur la droite de l'élément. Il peut également ne pas commencer contre le bord gauche si une tabulation ou des espaces sont présents en début de ligne dans le code HTML.
Ce texte est formaté avec trois espaces dans le code source. - white-space: pre-line;
Les espaces successifs sont affichés comme des espaces uniques. Les retours à la ligne se font comme ils apparaissent dans le code HTML, ou en fonction de la largeur de l'élément.
Ce texte est formaté avec trois espaces dans le code source. - white-space: pre-wrap;
Les espaces successifs sont conservés. Les retours à la ligne automatiques se font en fonction de la largeur de l'élément.
Ce texte est formaté avec trois espaces dans le code source. - white-space: break-spaces;
Comme avec la valeur
pre-wrap, les espaces successifs sont conservés, et les retours à la ligne automatiques se font, maisbreak-spacesautorise les retours à la ligne entre les espaces successifs : ce qui peut provoques des ligne vide (ajustez la largeur de l'élément).Ce texte est formaté avec trois espaces dans le code source. - white-space: initial; (
normal) white-space: inherit; white-space: revert; white-space: revertLayer; white-space: unset;Les valeurs communes sont présentées sur ces pages :
initial,inherit,revert,revert-layer,unset.
Exemple d'animation de white-space.
L'animation ci-dessous parcourt toutes les valeurs de white-space.
Exemple interactif avec la propriété white-space.
Le texte ci-dessous comporte trois espaces entre chaque mot et deux retours à la ligne, matérialisés par le symbole ⮐. Il a été saisi dans le code HTML comme ceci :
p Ce texte a été saisi ⮐ avec trois spaces entre les mots ⮐ et deux retour à la ligne. /p
Pour mettre en évidence la différence entre pre-wrap et break-spaces, ajustez doucement la largeur de l'élément.
break-spaces autorise le retour à la ligne entre les espaces : vous verrez les espaces au début de la ligne suivante, ce qui ne se produit
jamais avec pre-wrap qui ne coupe que après les suites d'espaces.
Compatibilité des navigateurs avec white-space.
white-space dans sa syntaxe première (jusqu'à la version 3 incluse).display en tant que propriété résumée.Remarques :
(1) Accepte uniquement les valeurs white-space-collapse et text-wrap-mode, pas white-space-trim.
white-spacevaleurs
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
Histoire de la propriété white-space.
-
CSS 1 - Spécification concernant les feuilles de styles en cascade - Version 1
Définition première de la propriétéwhite-space, acceptant les valeursnormal,preetnowrap.17 Novembre 1995Document de travail.12 Novembre 1996Proposé à la recommandation.17 Décembre 1996Recommandation.13 Septembre 2018Ancienne spécification, déclarée obsolète. -
CSS 2.1 - Spécification concernant les feuilles de styles en cascade - Révision 1
Ajout de nouvelles valeurs pour la propriétéwhite-space:pre-wrap,pre-lineetinherit.04 Novembre 1997Document de travail.24 Mars 1998Proposé à la recommandation.11 Mai 1998Recommandation. -
Module CSS - Texte - Niveau 3
Ajout de la valeurbreak-spacespour la valeur de la propriétéwhite-space.27 Janvier 1999Document de travail.22 Décembre 2020Candidat à la recommandation. -
Module CSS - Texte - Niveau 4
A partir de cette version de la spécification CSS,white-spaceest une propriété résumée regroupant les valeurs des propriétéswhite-space-collapse,text-wrap-modeetwhite-space-trim.22 Septembre 2015Document de travail.
A propos de la gestion des textes, voir aussi.
La propriété white-space est décrite dans la spécification Module CSS - Texte, de même que tout ce qui concerne la gestion des textes
(alignement, espacements, césure, débordement, etc...). Les propriétés suivantes figurent également dans ce module de spécification :
Propriétés :
text-align).text-spacing-trim et text-autospace. regroupe les informations d'espacement des caractères pour les langues CJK.



