J'ai vu cette instruction comme la toute première ligne de nombreux fichiers CSS qui m'ont été remis:
@charset "UTF-8";
Que fait-il, et cette règle est-elle nécessaire?
De plus, si j'inclus cette balise meta dans mon élément "head", est-ce que cela éliminerait le besoin de l'avoir également présente dans mes fichiers CSS?
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
css
character-encoding
rsturim
la source
la source
Ceci est utile dans les contextes où le codage n'est pas indiqué par en-tête HTTP ou d'autres métadonnées, par exemple le système de fichiers local.
Imaginez la feuille de style suivante:
Si un lecteur enregistre le fichier sur un disque dur et que vous omettez la
@charset
règle, la plupart des navigateurs le liront dans le codage des paramètres régionaux du système d'exploitation, par exemple Windows-1252, et insérera â † - au lieu d'une flèche.Malheureusement, vous ne pouvez pas vous fier à ce mécanisme car le support est plutôt… rare. Et rappelez-vous que sur le net, un en-tête HTTP remplacera toujours la
@charset
règle.Les règles correctes pour déterminer le jeu de caractères d'une feuille de style sont par ordre de priorité:
@charset
règle.La dernière règle est la plus faible, il sera échouer dans certains navigateurs.
L'
charset
attribut dans<link rel='stylesheet' charset='utf-8'>
est obsolète dans HTML 5 .Attention aux conflits entre les différentes déclarations. Ils ne sont pas faciles à déboguer.
Lecture recommandée
@charset
si plusieurs noms sont enregistrés pour le même codage.@charset
. Il y a une table de support. Je n'ai pas confiance en cela. :)la source
content-type:text/css;charset=utf-8
tête?Une des raisons pour toujours inclure une spécification de jeu de caractères sur chaque page contenant du texte est d'éviter les vulnérabilités de scripts intersites. Dans la plupart des cas, le jeu de caractères UTF-8 est le meilleur choix pour le texte, y compris les pages HTML.
la source
Si vous mettez une balise <meta> dans vos fichiers css, vous faites quelque chose de mal. La balise <meta> appartient à vos fichiers html et indique au navigateur comment le html est codé, elle ne dit rien sur le css, qui est un fichier séparé. Vous pourriez avoir des encodages complètement différents pour votre html et votre css, même si je ne peux pas imaginer que ce soit une bonne idée.
la source