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

Cette question a déjà une réponse ici:

, 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 ceci:

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

Cela ne fonctionnera évidemment pas puisque ↓ est un symbole HTML. Il semble y avoir moins d'infos à propos ces symboles "Unicode échappé" qui sont 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 fléchés?

261
demandé sur Phrogz 2012-05-01 08:13:25

1 réponses

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

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

Si ce n'est pas assez bon, 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 laisser de 0 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 la spécification ci-dessous pour complète détail.


Partie pertinente de la spécification CSS2 :

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

  1. , avec un espace (ou un autre caractère espace blanc): "\26 B" ("&B"). Dans ce cas, les agents utilisateurs doivent traiter une paire " CR / LF "(U+000D/U+000A) comme un seul caractère d'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 un échappement hexadécimal. Notez que cela signifie qu'un "vrai" espace 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 10ffff autorisé dans Unicode actuel), L'UA peut remplacer l'échappement par le" caractère de remplacement " (U + FFFD). Si le caractère doit être affiché, L'UA doit afficher un symbole visible, tel qu'un glyphe "caractère manquant" (cf. 15.2, point 5).

  • Note: les échappements antislash sont toujours considérés comme faisant partie d'un identifiant ou d'une chaîne (c'est-à-dire que "\7B" n'est pas une ponctuation, même si "{" l'est, et "\32" est autorisé au début d'un nom de classe, même si "2" ne l'est pas).
    L'identifiant "te \ st" est exactement le même identifiant que "test".

Liste complète: caractère Unicode' Flèche vers le bas '(U + 2193) .

401
répondu Matt Ball 2013-12-05 14:02:14