Pourquoi spécifier @charset “UTF-8”; dans ton fichier CSS?
J'ai été voir cette instruction que la première ligne de nombreux fichiers CSS qui ont été remis à moi:
@charset "UTF-8";
Qu'il fait, et est-ce à la règle nécessaire?
Aussi, si je comprend la balise meta dans ma "tête" de l'élément, qui éliminent le besoin d'avoir elle aussi présente à l'intérieur de mes fichiers CSS?
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Vous devez vous connecter pour publier un commentaire.
Il indique au navigateur pour lire le fichier css en tant que UTF-8. C'est pratique si votre CSS contient des caractères unicode et non seulement ASCII.
De l'utiliser dans la balise meta est bien, mais uniquement pour les pages qui contiennent cette balise meta.
Lire les règles pour le jeu de caractères de la résolution des fichiers CSS à l' spec w3c de CSS 2.
C'est utile dans des contextes où le codage n'est pas dit par l'en-tête HTTP ou d'autres méta-données, par exemple le système de fichiers local.
Imaginer la feuille de style suivant:
Si un lecteur enregistre le fichier sur un disque dur et que vous omettez le
@charset
règle générale, la plupart des navigateurs de lire dans les OS locale de l'encodage, par exemple, Windows-1252, et insérer ↗ au lieu d'une flèche.Malheureusement, vous ne pouvez pas compter sur ce mécanisme que le support est plutôt rare.
Et n'oubliez pas que sur le net un en-tête HTTP aura toujours la priorité sur le
@charset
règle.Le bon des règles pour déterminer le jeu de caractères d'une feuille de style sont dans l'ordre de priorité:
@charset
règle.La dernière règle est la plus faible, il sera échouer dans certains navigateurs.
Le
charset
attribut dans<link rel='stylesheet' charset='utf-8'>
est obsolète dans HTML 5.Méfiez-vous des conflits entre les différentes déclarations. Ils ne sont pas facile à déboguer.
Lecture recommandée
@charset
si plus d'un nom est inscrit pour le même encodage.@charset
. Il est un support de table. Je n'ai pas confiance cette. 🙂content-type:text/css;charset=utf-8
en-tête?Une raison pour toujours inclure un jeu de caractères spécification sur chaque page contenant du texte est d'éviter de cross site scripting vulnérabilités. Dans la plupart des cas, le caractère UTF-8 est le meilleur choix pour le texte, y compris les pages HTML.
Si vous êtes de mettre un <meta> tag dans vos fichiers css, vous êtes en train de faire quelque chose de mal. Le <meta> tag appartient à votre html fichiers, et indique au navigateur comment le html est codé, il ne dit rien au sujet de la css, qui est un fichier séparé. Vous pourrait avoir complètement différents codages html et css, bien que je ne peux pas imaginer que ce serait une bonne idée.