aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/css/text-transform/index.html
blob: ecba436b316b19b226dcbbef131c17d81f42f17e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
---
title: text-transform
slug: Web/CSS/text-transform
tags:
  - CSS
  - Propriété
  - Reference
translation_of: Web/CSS/text-transform
---
<div>{{CSSRef}}</div>

<p>La propriété <strong><code>text-transform</code></strong> définit la façon d'utiliser les lettres capitales pour le texte d'un élément. Cela permet que le texte soit écrit uniquement en majuscules, minuscules ou que chaque mot commence par une capitale. Cela permet également d'améliorer la lisibilité pour les textes avec des annotations <a href="/fr/docs/HTML/Element/ruby">Ruby</a>.</p>

<div>{{EmbedInteractiveExample("pages/css/text-transform.html")}}</div>

<p class="hidden">Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> et à envoyer une <em>pull request</em> !</p>

<p>La propriété <code>text-transform</code> gère les différences liées aux langues, par exemple :</p>

<ul>
 <li>
  <p>Pour les langues turques comme le turc (tr), l'azéri (az), le tatar de Crimée (crh), le tatar de Volga (tt) et le bachkir (ba), il existe deux sortes de i, avec et sans le point. Les majuscules correspondantes sont également différentes : <code>i</code>/<code>İ</code> et <code>ı</code>/<code>I</code>.</p>
 </li>
 <li>
  <p>En allemand (de), le <code>ß</code> devient <code>SS</code> en majuscule.</p>
 </li>
 <li>
  <p>En néerlandais (nl), le digraphe <code>ij</code> devient <code>IJ</code>, y compris avec <code>text-transform: capitalize</code> qui ne met que la première lettre de chaque mot en majuscule.</p>
 </li>
 <li>
  <p>En grec (el), les voyelles perdent leur accent lorsque tout le mot est écrit en capitales (<code>ά</code>/<code>Α</code>) à l'exception du eta disjonctif (<code>ή</code>/<code>Ή</code>). Les diphtongues avec un accent sur la première voyelle perde l'accent et récupère un tréma sur la seconde voyelle (<code>άι</code>/<code>ΑΪ</code>). La lettre sigma a deux formes minuscules : <code>σ</code> et <code>ς</code>. <code>ς</code> est utilisée uniquement lorsque c'est la dernière lettre du mot. Lorsque l'agent utilisateur applique <code>text-transform: lowercase</code> à un sigma majuscule (<code>Σ</code>), il doit choisir l'une des deux formes selon le contexte.</p>
 </li>
 <li>En gaëlique (ga), une lettre qui préfixe un mot doit rester en minuscule lorsqu'on capitalise toutes les lettres. Ainsi, en appliquant <code>text-transform: uppercase</code> à <code>ar aon tslí</code>, on obtiendra <code>AR AON tSLÍ</code> et non <code>AR AON TSLÍ</code>. Dans certains cas, un trait d'union peut être retiré lors du passage en majuscules : <code>an t-uisce</code> deviendra <code>AN tUISCE </code>(le trait-d'union sera bien réinséré avec <code>text-transform: lowercase</code>)</li>
</ul>

<p>La langue d'un document HTML est définie par l'attribut XML <code>xml:lang</code>, qui a la priorité sur l'attribut global <code><a href="/fr/docs/Web/HTML/Attributs_globaux/lang">lang</a></code>.</p>

<p>Le support de ces différents cas peut varier d'un navigateur à un autre. Pour plus de détails, <a href="#compat">voir le tableau de compatibilité des navigateurs</a>.</p>

<h2 id="Syntaxe">Syntaxe</h2>

<pre class="brush:css no-line-numbers">/* Avec un mot-clé */
text-transform: none;
text-transform: capitalize;
text-transform: uppercase;
text-transform: lowercase;
text-transform: full-width;
text-transform: full-size-kana;

/* Valeurs globales */
text-transform: inherit;
text-transform: initial;
text-transform: unset;
</pre>

<h3 id="Valeurs">Valeurs</h3>

<dl>
 <dt><code>capitalize</code></dt>
 <dd>
 <p>En utilisant ce mot-clé, la première lettre de chaque mot sera affichée en capitale. Les autres caractères ne seront pas modifiés et conserveront ainsi la forme originale, contenue dans le texte de l'élément. Ici, une lettre peut être n'importe quel caractère Unicode qui fait partie des catégories génériques Lettre. Cela exclue donc les symboles de ponctuations qui peuvent être utilisés en début de mot.</p>

 <p class="note">Le mot-clé capitalize n'était pas complètement spécifié avec CSS 1 et CSS 2.1. Il y avait certaines différences entre les navigateurs : Firefox considèrait que - et _ étaient des lettres ; Webkit et Gecko considéraient que les symboles lettrés comme ⓐ étaient de vraies lettres ; Internet Explorer 9 était le plus proche de la définition donnée par CSS2 mais il y avait certains cas étranges. Grâce à CSS Text Level 3, ces ambiguités sont levées. Dans le tableau, la ligne capitalize traduit le support de cette spécification.</p>
 </dd>
 <dt><code>uppercase</code></dt>
 <dd>En utilisant ce mot-clé, tous les caractères seront écrits en capitales.</dd>
 <dt><code>lowercase</code></dt>
 <dd>En utilisant ce mot-clé, tous les caractères seront écrits en minuscules.</dd>
 <dt><code>none</code></dt>
 <dd>Ce mot-clé empêche les modifications liées à la casse des caractères.</dd>
 <dt><code>full-width</code> {{experimental_inline}}</dt>
 <dd>Ce mot-clé force l'écriture de chaque caractère dans un carré, ce qui permet de les aligner avec des scripts d'Asie Orientale (par exemple du chinois ou du japonais).</dd>
 <dt><code>full-size-kana</code></dt>
 <dd>Cette valeur est généralement utilisée pour <a href="/fr/docs/Web/HTML/Element/ruby">les annotations Ruby</a>. Ce mot-clé convertit les caractères Kana de petite taille en leur équivalent de grande taille. Cela permet de compenser les problèmes de lisibilité des tailles de police généralement utilisées pour le Ruby.</dd>
</dl>

<h3 id="Syntaxe_formelle">Syntaxe formelle</h3>

<pre class="syntaxbox">{{csssyntax}}</pre>

<h2 id="Exemples">Exemples</h2>

<h3 id="HTML">HTML</h3>

<pre class="brush: html">&lt;code&gt;none :&lt;/code&gt;
&lt;p class="sans_effet"&gt;
  Lorem ipsum dolor sit amet, consectetur adipisicing elit
&lt;/p&gt;

&lt;code&gt;capitalize :&lt;/code&gt;
&lt;p class="cap"&gt;
  (Voici) “un” –rapide– -test- ⓙkl
&lt;/p&gt;

&lt;/code&gt; uppercase :&lt;/code&gt;
&lt;p class="majuscules"&gt;
  Cependant d'Artagnan voulut d'abord se rendre compte de
  la physionomie de l'impertinent qui se moquait de lui.
&lt;/p&gt;

&lt;code&gt;full-width :&lt;/code&gt;
&lt;p class="mix"&gt;
  ABCDEF&lt;/br&gt;
  最初に彼を嘲
&lt;/p&gt;

&lt;code&gt;full-size-kana :&lt;/code&gt;
&lt;p class="full-size-kana"&gt;ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ&lt;/p&gt;
&lt;p&gt;ァィゥェ ォヵㇰヶ ㇱㇲッㇳ ㇴㇵㇶㇷ ㇸㇹㇺャ ュョㇻㇼ ㇽㇾㇿヮ&lt;/p&gt;

</pre>

<h3 id="CSS">CSS</h3>

<pre class="brush: css">p.sans_effet {
  text-transform: none;
}

p.cap {
  text-transform: capitalize;
}

p.majuscules {
  text-transform: uppercase;
}

p.mix {
  text-transform: full-width;
}

p.full-size-kana {
  text-transform: full-size-kana;
}

</pre>

<h3 id="Résultat">Résultat</h3>

<p>{{EmbedLiveSample("Exemples","100%","500")}}</p>

<h2 id="Accessibilité">Accessibilité</h2>

<p>De grandes portions de texte utilisant <code>text-transform</code> avec la valeur <code>uppercase</code> peuvent être difficilement lisibles par les personnes dyslexiques ou souffrant de problèmes cognitifs.</p>

<ul>
 <li><a href="/fr/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.4_Make_it_easier_for_users_to_see_and_hear_content_including_separating_foreground_from_background">Comprendre les règles WCAG 1.4</a></li>
 <li><a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-visual-presentation.html" rel="noopener"><em>Understanding Success Criterion 1.4.8 | W3C Understanding WCAG 2.0</em> (en anglais)</a></li>
</ul>

<h2 id="Spécifications">Spécifications</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Spécification</th>
   <th scope="col">État</th>
   <th scope="col">Commentaires</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('CSS3 Text', '#text-transform', 'text-transform')}}</td>
   <td>{{Spec2('CSS3 Text')}}</td>
   <td>Par rapport à {{SpecName('CSS2.1', 'text.html#caps-prop', 'text-transform')}}, la spécification s'étend aux caractères Unicode des catégories générales Nombre et Lettre. Le comportement de <code>capitalize</code> est modifié pour ignorer les éventuels symboles ou caractères de ponctuations utilisés. Les mots-clés <code>full-width</code> et <code>full-size-kana</code> sont ajoutés afin de pouvoir mélanger harmonieusement les caractères alphabétiques et les caractères idéographiques.</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS2.1', 'text.html#caps-prop', 'text-transform')}}</td>
   <td>{{Spec2('CSS2.1')}}</td>
   <td>Par rapport à {{SpecName('CSS1', '#text-transform', 'text-transform')}}, étend la spécifications aux lettres non latines et aux scripts bicaméraux.</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS1', '#text-transform', 'text-transform')}}</td>
   <td>{{Spec2('CSS1')}}</td>
   <td>Définition initiale.</td>
  </tr>
 </tbody>
</table>

<p>{{cssinfo}}</p>

<h2 id="Compatibilité_des_navigateurs"><a id="compat" name="compat">Compatibilité des navigateurs</a></h2>

<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>

<p>{{Compat("css.properties.text-transform")}}</p>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li>{{cssxref("font-variant")}}</li>
</ul>