Text-box - Propriété CSS

text-box

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

Description rapide
Permet l'effacement des espacements situés avant et/ou après les lignes de texte.
Statut
Problèmes de compatibilité
S'applique à
Conteneurs du type bloc et blocs inline.
Utilisable sur
HTML
Pourcentages
Ne s'appliquent pas.
Valeur initiale
auto
Héritée par défaut
Non.
auto
Module W3C
Module CSS - Mise en page en ligne
Statut du document: WD (document de travail)

Description de la propriété text-box.

Cette page est en préparation, dans l'attente d'une stabilisation de la norme.

text-box est une propriété résumée qui permet de définir en une seule écriture les deux propriétés text-box-trim et text-box-edge. Avec une particularité : contrairement à ce qui se passe avec les autres propriétés résumées, le fait de ne pas spécifier de valeur pour text-box-trim ne fixe pas cette dernière à sa valeur initiale mais à trim-both.

  • text-box-trim : Spécifie comment la réduction des dimensions d'une boîte de texte doit se faire pour se conformer à text-box-edge (langages CJK).
  • text-box-edge : Définit le métrique des textes CJK.


En imprimerie, comme en informatique, les lignes de textes sont séparées par un espacement. Si ce n'était pas le cas, le texte serait difficile à lire, le haut des majuscules touchant les jambages de la ligne du dessus.

Ces lignes ne sont pas
séparées par un espacement.
Ce qui les rend difficile
à lire.

Cet espacement se réparti au dessus et en dessous de chacune des lignes, pas forcément en parts égales d'ailleurs. Quand on fixe, en CSS, des lignes d'une hauteur de 1, cela inclut ces deux espacements.

Line-height inclut ces espacements


Néanmoins ces espacements sont gênants dans certains cas. Par exemple, lorsqu'un texte doit étre aligné sur une image disposée à côté. On voit bien dans l'exemple ci-dessous que le haut des lettres n'est pas en face du haut de l'image. Bien sûr on peut corriger cela en appliquant une petite marge négative au titre. Mais la solution avec text-box est plus élégante (voir les exemples).

Exemple sans utiliser text-box

Coucher de soleil.


Pour connaître la syntaxe détaillé, consultez les pages des propriétés text-box-trim et text-box-edge.

Valeurs pour text-box.

  • text-box: auto;

    Les espacements avant et après sont conservés. C'est le cas normal.

  • text-box: trim-both ex alphabetic;

    text-box reprend les valeurs pour text-box-trim et text-box-edge. Notre exemple est équivalent à :

    text-box-trim: trim-both; text-box-edge: ex alphabetic;

    N'oubliez pas que le comportement de la propriété résumée est bizarre : en cas d'omission de la valeur pour text-box-trim celle-ci est fixée à trim-both qui n'est pas la valeur initiale.


    Reportez-vous à chacune de ses propriétés pour plus de précisions sur les syntaxes (text-box-trim et text-box-edge).

  • text-box: initial; (auto) text-box: inherit; text-box: revert; text-box: revertLayer; text-box: unset;

    Ces valeurs sont décrites plus en détail sur leur page respective : initial, inherit, revert, revert-layer, unset.

Exemples avec la propriété text-box.

Firefox   ne reconnaît pas text-box. Utiliser un autre navigateur pour visualiser ces exemples.

Aligner une image et un titre.

C'est l'exemple le plus classique. Le problème se pose également lors d'un texte à deux colonnes dont l'une commence par une image.

Exemple sans utiliser text-box

Coucher de soleil.

Sans utiliser text-box le haut du titre n'est pas aligné sur le haut de l'image. Plus le titre est gros, plus cet effet sera visible.

Exemple avec text-box

Coucher de soleil.

En utilisant text-box le problème est résolu. Le haut des lettres majuscules est maintenant bien aligné sur le haut de l'image.

Centrer verticalement deux textes dans des polices différentes.

Les espacements ajoutés avant et après la ligne ne sont pas forcément identique : cela dépend de la police. Lors d'un centrage vertical cela peut être sensible et provoquer un écart visible. C'est le cas entre la police Arial et la police Bebas Neue. Imaginons deux div affichés en inline-block et que l'on souhaite aligner par le milieu dans le sens vertical. L'écart d'alignement est très visible. Mais ici encore la propriété text-box résout le problème.

Arial 
Bebas Neue
Arial 
Bebas Neue

Prise en charge de text-box par les navigateurs.

La propriété text-box est encore très mal comprise par Firefox   (2025).

Colonne 1
Support par les navigateurs de la propriété text-box-edge pour indiquer par rapport à quelle ligne text-box-trim efface les espacements.
Colonne 2
Support par les navigateurs de la propriété text-box-trim pour supprimer les espacements avant et/ou après les lignes de texte.
Colonne 3
Support par les navigateurs de la propriété résumée text-box permettant d'effacer les espacements avant et/ou après les lignes de texte.
1
Propriété
text-box-edge
2
Propriété
text-box-trim
3
Proprété résumée
text-box
Estimation de la prise en charge globale.
62%
62%
77%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Opéra

Samsung Internet

Chrome

Safari

Firefox

Safari sur IOS

Edge

Androïd Brower

Firefox pour Androïd

Chrome pour Androïd

KaiOS Browser

Opéra mini

Historique de la propriété text-box.

Voir aussi, concernant les dispositions en ligne.

Le module de spécification dénommé "Module CSS - Mise en page en ligne", ou CSS Inline Layout Module en anglais, définit ce qui est relatif aux alignements verticuax et à la disposition en ligne des éléments, que ce soit dans un objet SVG ou dans un document HTML. Les propriétés suivantes sont décrites dans ce module :

Propriétés :

alignment-baseline
Définit comment un élément est aligné, dans le sens vertical, par rapport à son parent.
baseline-shift
baseline-source
Définit si l'alignment vertical d'un élément doit se faire par rapport à sa premère ou sa dernière ligne de texte.
dominant-baseline
Définit la ligne de base utilisée pour les alignements verticaux de textes.
initial-letter
Définit les paramètres des lettrines.
initial-letter-wrap
Définit comment le texte doit contourner les lettrines.
line-height
Définit la hauteur des lignes de texte.
text-box-edge
Définit le métrique des textes CJK.
text-box-trim
Spécifie comment la réduction des dimensions d'une boîte de texte doit se faire pour se conformer à text-box-edge (langages CJK).
vertical-align
Alignement vertical.