W3docs

Propriété CSS text-transform

Utilisez la propriété text-transform pour contrôler la mise en majuscules du texte d'un élément. Découvrez les valeurs et essayez des exemples.

La propriété CSS text-transform contrôle la mise en majuscules du texte d'un élément — elle peut forcer le texte en MAJUSCULES, en minuscules, ou en Mettre Une Majuscule À Chaque Mot, sans modifier le HTML sous-jacent. Il s'agit d'un changement purement visuel : le texte source reste exactement tel que vous l'avez écrit, de sorte que les lecteurs d'écran, le copier-coller et les soumissions de formulaires voient toujours la casse d'origine.

Cette page couvre toutes les valeurs de text-transform, les pièges de la valeur capitalize, le mappage de casse spécifique à la langue, ainsi que des exemples interactifs pour chaque valeur.

Pourquoi utiliser text-transform plutôt que taper directement les majuscules ?

Garder la casse dans le CSS plutôt que dans le balisage maintient votre contenu propre et flexible :

  • Une seule source de vérité. Rédigez les titres et les étiquettes en casse de phrase normale ; laissez le CSS les mettre en majuscules uniquement là où le design l'exige. Modifiez le design ultérieurement en un seul endroit.
  • Favorable à la localisation. Les traducteurs modifient un texte lisible, pas des majuscules criantes.
  • Accessibilité et SEO. Les moteurs de recherche et les technologies d'assistance lisent le vrai texte, pas les glyphes stylisés. Mettre en majuscules l'étiquette d'un <button> de cette façon expose toujours un nom accessible en casse normale.

Mappage de casse spécifique à la langue

text-transform suit les règles de casse de la langue du contenu (l'attribut lang), et non une conversion ASCII naïve. Quelques cas notables :

  • Langues turciques — le turc (tr), l'azéri (az), le tatar de Crimée (crh), le tatar de la Volga (tt) et le bachkir (ba) ont des i avec et sans point, ce qui donne deux paires de casse : i/İ et ı/I.
  • Allemand (de) — le ß devient SS en majuscules.
  • Grec (el) — lorsqu'un mot entier est mis en majuscules, l'accent vocalique est supprimé (ά → Α), sauf pour l'êta disjonctif (ή/Ή).

La prise en charge de ces règles spécifiques à la langue varie selon les navigateurs ; testez si votre audience en dépend.

Avertissement

Les valeurs full-width et full-size-kana sont expérimentales. full-width bénéficie d'une prise en charge partielle par WebKit, tandis que full-size-kana a un support très limité.

Valeur initialenone
S'applique àTous les éléments. S'applique également à ::first-letter et ::first-line.
HéritéOui.
AnimableNon.
VersionCSS1
Syntaxe DOMobject.style.textTransform = "capitalize";

Syntaxe

text-transform: none | capitalize | uppercase | lowercase | full-width | full-size-kana | initial | inherit;

La valeur "uppercase"

uppercase convertit chaque caractère en sa forme majuscule — l'usage le plus courant concerne les titres, les boutons et les étiquettes. Dans l'exemple ci-dessous, le texte du paragraphe et du <div> est forcé en majuscules tandis que le HTML conserve sa casse normale :

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        text-transform: uppercase;
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <p>This is some paragraph.</p>
    <div>
      Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
    </div>
  </body>
</html>

Résultat

Propriété CSS text-transform

Les valeurs "capitalize" et "lowercase"

capitalize met en majuscule la première lettre de chaque mot et laisse le reste de chaque mot inchangé. Une frontière de « mot » est tout espace, ponctuation ou symbole, de sorte que les guillemets et les traits d'union commencent également de nouveaux mots (par exemple, mother-in-law devient Mother-In-Law). Deux pièges courants :

  • Elle ne touche que la première lettreiPhone reste IPhone, et non Iphone, car la casse existante des lettres restantes est préservée.
  • Un chiffre ne compte pas comme une lettre, donc la première lettre après un nombre n'est pas mise en majuscule. 3rd reste 3rd, jamais 3Rd.

lowercase est l'opposé de uppercase : elle force tous les caractères en minuscules. Dans l'exemple ci-dessous, le premier <div> utilise capitalize et le second utilise lowercase :

<!DOCTYPE html>
<html>
  <head>
    <style>
      .a {
        text-transform: capitalize
      }
      .b {
        text-transform: lowercase
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <div class="a">"Text transform property"</div>
    <br />
    <div class="b">
      "THIS IS SOME PARAGRAPH FOR EXAMPLE".
    </div>
  </body>
</html>

La valeur "none"

none est la valeur par défaut — le texte s'affiche exactement tel qu'il est écrit, sans effet de mise en majuscules. On l'utilise principalement pour annuler un text-transform qu'un élément hériterait autrement, puisque la propriété est héritée par défaut.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      h2 {
        text-transform: none;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>
        Example of the text-transform property with the "none" value:
    </h2>
  </body>
</html>

La valeur "initial"

initial réinitialise la propriété à sa valeur par défaut définie par le CSS (none), quelle que soit la valeur héritée. L'exemple ci-dessous réinitialise text-transform sur un paragraphe :

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      p.text {
        text-transform: initial;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>text-transform: initial:</h2>
    <p class="text">
      Example of the text-transform property with the "initial" value:
    </p>
  </body>
</html>

Valeurs

ValeurDescriptionEssayer
noneAucun effet de mise en majuscules. Il s'agit de la valeur par défaut de cette propriété.Essayer »
capitalizeMet en majuscule le premier caractère de chaque mot.Essayer »
uppercaseMet tous les caractères de chaque mot en majuscules.Essayer »
lowercaseMet tous les caractères de chaque mot en minuscules.Essayer »
full-widthPlace l'écriture d'un caractère (idéogrammes et scripts latins) dans un carré, permettant de les aligner comme en chinois ou en japonais.Essayer »
full-size-kanaConvertit tous les petits caractères Kana en Kana pleine taille, pour compenser les problèmes de lisibilité aux petites tailles de police généralement utilisées dans les ruby.Essayer »
initialApplique la valeur par défaut de la propriété.Essayer »
inheritHérite la propriété de l'élément parent.

Propriétés associées

text-transform est l'un des nombreux outils CSS pour façonner l'apparence du texte. Combinez-la avec ces propriétés associées :

  • text-decoration — souligner, surligner ou barrer le texte.
  • font-variant — afficher le texte en petites majuscules (une vraie variante typographique, contrairement à des majuscules visuelles).
  • letter-spacing et word-spacing — se marie bien avec les titres en majuscules, qui se lisent souvent mieux avec un espacement supplémentaire.
  • text-align — contrôler l'alignement horizontal du texte transformé.
  • ::first-letter et ::first-linetext-transform s'applique également à ces pseudo-éléments, utile pour les effets de lettrine.

Pratique

Pratique
Comment faire commencer chaque mot d'un texte par une majuscule ?
Comment faire commencer chaque mot d'un texte par une majuscule ?
Was this page helpful?