web-dev-qa-db-fra.com

CSS: après avoir encodé des caractères dans le contenu

J'utilise le CSS suivant, qui semble fonctionner:

a.up:after{content: " ↓";}
a.down:after{content: " ↑";}    

Cependant, les caractères ne peuvent pas sembler être encodés comme ceci, car la sortie est littérale et montre la chaîne réelle:

a.up:after{content: " ↓";}
a.down:after{content: " ↑";}   

Si je ne peux pas l'encoder, j'ai l'impression que je devrais utiliser quelque chose comme .append () dans jQuery, car cela prend en charge l'encodage. Des idées?

46
theorise

Pourquoi voulez-vous quand même encoder ces personnages? N'oubliez pas que vous écrivez du CSS, pas du HTML. Votre code:

a.up:after{content: " ↓";}
a.down:after{content: " ↑";}

est parfaitement valide, tant que vous enregistrez le fichier avec l'encodage UTF-8 et envoyez l'en-tête approprié:

Content-Type: text/css; charset=utf-8

L'encodage des caractères n'est utilisé qu'en HTML afin qu'il n'y ait aucune ambiguïté entre le contenu et les balises. Ainsi, vous encoderiez< comme &lt; pour que le navigateur ne pense pas que ce soit le début d'une balise. Choses comme &darr; ne sont que des produits pour les personnes qui ne savent pas utiliser utf-8 (ou qui ne peuvent pas, pour une raison quelconque) :).

11
Felix