Placer le caractère Unicode dans la valeur de contenu CSS

J’ai un problème. J’ai trouvé le code HTML pour la flèche vers le bas, (↓)

Cool. Maintenant je dois l’utiliser en CSS comme ça:

 nav a:hover {content:"&darr";} 

Cela ne va évidemment pas marcher depuis est un symbole HTML. Il semble y avoir moins d’informations sur ces symbolesunicode échappés” utilisés dans css. Il y a d’autres symboles comme \2020 que j’ai trouvés mais pas de flèches. Quels sont les codes de flèche?

Pourquoi ne pas simplement sauvegarder / servir le fichier CSS en UTF-8?

 nav a:hover:after { content: "↓"; } 

Si ce n’est pas suffisant, et que vous voulez tout garder, ASCII:

 nav a:hover:after { content: "\2193"; } 

Le format général pour un caractère Unicode dans une chaîne est \000000 à \FFFFFF – une barre oblique inverse suivie de six chiffres hexadécimaux. Vous pouvez omettre les 0 premiers chiffres lorsque le caractère Unicode est le dernier caractère de la chaîne ou lorsque vous ajoutez un espace après le caractère Unicode. Voir les spécifications ci-dessous pour plus de détails.


Partie pertinente de la spécification CSS2 :

Troisièmement, les échappements par barre oblique inverse permettent aux auteurs de faire référence à des caractères qu’ils ne peuvent pas insérer facilement dans un document. Dans ce cas, la barre oblique inverse est suivie d’au plus six chiffres hexadécimaux (0..9A..F), qui correspondent au caractère ISO 10646 ( [ISO10646] ) avec ce nombre, qui ne doit pas être zéro. (Il n’est pas défini dans CSS 2.1. Que se passe-t-il si une feuille de style contient un caractère zéro codé Unicode.) Si un caractère dans la plage [0-9a-fA-F] suit le nombre hexadécimal, la fin du nombre doit être clair. Il y a deux façons de faire cela:

  1. avec un espace (ou un autre caractère blanc): “\ 26 B” (“& B”). Dans ce cas, les agents utilisateurs doivent traiter une paire “CR / LF” (U + 000D / U + 000A) comme un seul espace blanc.
  2. en fournissant exactement 6 chiffres hexadécimaux: “\ 000026B” (“& B”)

En fait, ces deux méthodes peuvent être combinées. Un seul caractère d’espace blanc est ignoré après une évasion hexadécimale. Notez que cela signifie qu’un espace “réel” après la séquence d’échappement doit être doublé.

Si le nombre est en dehors de la plage autorisée par Unicode (par exemple, “\ 110000” est supérieur au maximum de 10FFFF autorisé en Unicode actuel), l’UA peut remplacer l’échappement par le “caractère de remplacement” (U + FFFD). Si le caractère doit être affiché, l’agent utilisateur doit afficher un symbole visible, tel qu’un glyphe de “caractère manquant” (cf. 15.2, point 5).

  • Remarque: les échappements de barre oblique inverse sont toujours considérés comme faisant partie d’un identificateur ou d’une chaîne (c.-à-d. Que “\ 7B” n’est pas une ponctuation, même si “{” est autorisé et “\ 32” est autorisé au début du nom de classe). bien que “2” ne soit pas).
    L’identifiant “te \ st” est exactement le même identifiant que “test”.

Liste complète: Caractère Unicode ‘DOWNWARDS ARROW’ (U + 2193) .