Размещение символа Юникода в значении содержимого CSS

У меня проблема. Я нашел код HTML для стрелки вниз, ↓ (& darr;)

Круто. Теперь мне нужно использовать его в CSS так:

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

Это явно не сработает, так как ↓ является символом HTML. Кажется, что меньше информации об этих символах "escaped unicode", которые используются в css. Существуют и другие символы, такие как \2020, которые я нашел, но не стрелки. Каковы коды стрелок?

Ответ 1

Почему бы вам просто не сохранить/не обслуживать файл CSS как UTF-8?

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

Если это не достаточно хорошо, и вы хотите сохранить его все-ASCII:

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

Общий формат для символа Unicode внутри строки \000000 to \FFFFFF - обратная косая черта, за которой следуют шесть шестнадцатеричных цифр. Вы можете оставить цифры 0, когда символ Юникода является последним символом в строке или при добавлении пробела после символа Юникода. Подробную информацию см. В спецификации ниже.


Соответствующая часть спецификации CSS2:

В-третьих, экранирование обратной косой черты позволяет авторам ссылаться на символы, которые они не могут легко помещать в документ. В этом случае обратная косая черта сопровождается шестью шестнадцатеричными цифрами (0..9A..F), которые соответствуют ISO 10646 ([ISO10646]) с таким числом, которое не должно быть равно нулю. (Это значение undefined в CSS 2.1, что происходит, если таблица стилей содержит символ с кодовым нулевым кодом Unicode.) Если символ в диапазоне [0-9a-fA-F] следует шестнадцатеричному числу, конец номера должны быть четко сформулированы. Это можно сделать двумя способами:

  • с пробелом (или другим символом пробела): "\ 26 B" ( "& B" ). В этом случае пользовательские агенты должны обрабатывать пару "CR/LF" (U + 000D/U + 000A) как один символ пробела.
  • предоставляя ровно 6 шестнадцатеричных цифр: "\ 000026B" ( "& B" )

Фактически, эти два метода могут быть объединены. После шестнадцатеричного escape-кода игнорируется только один символ пробела. Обратите внимание, что это означает, что "реальное" пространство после escape-последовательности должно быть удвоено.

Если число выходит за пределы допустимого Unicode диапазона (например, "\ 110000" превышает максимально допустимое значение 10FFFF в текущем Юникоде), UA может заменить escape "заменяющим символом" (U + FFFD). Если символ должен быть отображен, UA должен показать видимый символ, например глиф "пропавшего символа" (см. 15.2, пункт 5).

  • Примечание. Экраны обратной косой черты всегда считаются частью identifier или строки (т.е. "\7B" не является пунктуацией, хотя "{" есть, и "\ 32" разрешено в начале имени класса, хотя "2" не является).
    Идентификатор "te\st" является точно таким же идентификатором, что и "test".

Полный список: Юникод-символ "СТРЕЛКА ВНИЗ" (U + 2193).