--- title: '@charset' slug: Web/CSS/@charset tags: - CSS - Reference - Règle @ translation_of: Web/CSS/@charset ---
La règle @ @charset
définit l'encodage des caractères utilisés dans la feuille de style. Cette règle doit être le premier élément de la feuille de style (aucun caractère ne doit être écrit avant). Cette règle ne fait pas partie des instructions imbriquées et ne peut donc pas être utilisée à l'intérieur des groupes conditionnels. Si plusieurs règles @charset
sont définies, seule la première sera utilisée. Cette règle ne pourra pas être utilisée au sein d'un attribut style
d'un élément HTML ou avec l'élément {{HTMLElement("style")}} car c'est l'encodage du document HTML qui est alors pris en compte.
@charset "utf-8";
Cette règle @ s'avère notamment utile lorsqu'on utilise des caractères non-ASCII pour certaines propriétés CSS telles que {{cssxref("content")}}.
Le moteur dispose de différentes méthodes pour déterminer l'encodage d'une feuille de style. Il utilisera ces méthodes dans l'ordre qui suit et s'arrêtera dès qu'un résultat sera obtenu (autrement dit, les règles qui suivent sont triées par priorité décroissante) :
charset
de l'en-tête HTTP Content-Type
ou l'information équivalente dans le protocole utilisé pour servir la feuille de style.@charset
.charset
de l'élément {{HTMLElement("link")}}). Cette méthode est désormais obsolète et ne doit plus être utilisée.@charset <charset>;
où
charset
@charset "UTF-8"; /* Valide, la feuille de style est encodée en Unicode UTF-8 */ @charset "iso-8859-15"; /* Valide, la feuille de style est encodée en Latin-9 (langues d'Europe occidentale avec le symbole €) */
@charset "UTF-8"; /* Invalide, il y a un caractère (un espace) avant la règle @ */ @charset UTF-8; /* Invalide, sans ' ou ", le jeu de caractères n'est pas une chaîne CSS ({{cssxref("<string>")}}) */
Spécification | État | Commentaires |
---|---|---|
{{SpecName('CSS2.1', 'syndata.html#x57', '@charset')}} | {{Spec2('CSS2.1')}} | Définition initiale. |
{{Compat("css.at-rules.charset")}}