{{ CSSRef() }}
Résumé
La règle @ CSS @charset
définit l'encodage des caractères utilisés dans la feuille de style. Elle doit être le premier élément de la feuille de style et ne doit être précédée par aucun caractère. Comme ce n'est pas une expression imbriquée, elle ne peut pas être utilisée dans un groupe conditionnel de règles. Si plusieurs règles @charset
sont définies, seule la première est utilisée, et elle ne peux pas être utilisée dans un attribut style
d'un élément HTML ou dans l'élément {{HTMLElement("style")}} pour lequel le jeu de caractères pertinent est celui de la page HTML.
Cette règle @ est utile lorsque des caractères non-ASCII sont utilisé dans certaines propriétés CSS, comme {{Cssxref("content")}}.
Puisqu'il y a plusieurs manières de définir l'encodage des caractères d'une feuille de style, le navigateur essaiera les méthodes suivantes dans l'ordre décrit (et s'arrêtera dès qu'une méthode donne un résultat) :
- La valeur donnée par l'attribut
charset
de l'en-tête HTTPContent-type:
ou l'équivalent dans le protocole utilisé pour servir la feuille de style. - La valeur de l'indicateur d'ordre des octets Unicode placé au début du fichier.
- La règle CSS
@charset
. - Utiliser l'encodage des caractères défini par le document référent : l'attribut
charset
de l'élément {{HTMLElement("link")}}. Cette méthode est obsolète en HTML5 et ne doit pas être utilisée. - Supposer que l'encodage du document est UTF-8.
Syntaxe
@charset charset;
où :
- charset
- Est une {{xref_cssstring()}} qui décrit l'encodage des caractères qui doit être utilisé. Cela doit être le nom d'un encodage de caractères sûr pour le web défini par le registre IANA. Si plusieurs noms sont associé avec un encodage, seul celui indiqué comme preferred doit être utilisé.
Exemples
@charset "UTF-8"; /* Définit l'encodage de la feuille de style à Unicode UTF-8 */ @charset 'iso-8859-15'; /* Définit l'encodage de la feuille de style à Latin-9 (Langues de l'Europe occidentale, avec le symbole euro) */ @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ère n'est pas une {{xref_cssstring()}} */
Spécifications
Spécification | État | Commentaire |
---|---|---|
{{ SpecName('CSS2.1', 'syndata.html#x57', '@charset') }} | {{ Spec2('CSS2.1') }} |
Compatibilité des navigateurs
{{ CompatibilityTable() }}
Fonction | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support de base | 2.0 | {{ CompatGeckoDesktop("1.8") }}[*] | 5.5 [**] | 9 | 4 |
Fonction | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Support de base | 2.1 | {{ CompatGeckoMobile("1.8") }} | 5.5 [**] | 10.0 | 4 |
[*] Firefox 1.0 supportait seulement une syntax invalide de l'encodage des caractères n'est pas définit entre des guillemets simples ou doubles.
[**] Depuis IE 5.5 jusqu'à IE 7 inclus, IE supportait égalemental la syntaxe invalide ou l'encodage des caractères n'est pas entouré de guillemets simples ou doubles.
Voir également
{{CSS_at_rules()}}