Creation of new accounts on MDN is unavailable while we devise a solution to an ongoing denial-of-service attack. We're sorry about the inconvenience! If you see something that needs to be fixed, please file a bug: https://bugzilla.mozilla.org/form.doc

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 peut pas être utilisée dans un attribut style d'un élément HTML ou dans l'élément <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 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) :

  1. La valeur donnée par l'attribut charset de l'en-tête HTTP Content-type: ou l'équivalent dans le protocole utilisé pour servir la feuille de style.
  2. La valeur de l'indicateur d'ordre des octets Unicode placé au début du fichier.
  3. La règle CSS @charset.
  4. Utiliser l'encodage des caractères défini par le document référent : l'attribut charset de l'élément <link>. Cette méthode est obsolète en HTML5 et ne doit pas être utilisée.
  5. Supposer que l'encodage du document est UTF-8.

Syntaxe

@charset charset;
@charset "UTF-8";
@charset 'iso-8859-15';

où :

charset
Est une <string> 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 <string> */

Spécifications

Spécification Statut Commentaire
CSS Level 2 (Revision 1)
La définition de '@charset' dans cette spécification.
Recommendation  

Compatibilité des navigateurs

Fonction Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support de base 2.0 1.5 (1.8)[*] 5.5 [**] 9 4
Fonction Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support de base 2.1 1.0 (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.

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : Guillaume-Heras, fscholz, FredB, teoli, jdvauguet, the prisoner
 Dernière mise à jour par : Guillaume-Heras,