在CSS内容值中放置Unicode字符

我有个问题。我已经找到向下箭头的HTML代码,↓ (↓)

酷。现在我需要像这样在CSS中使用它:

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

这显然是行不通的,因为↓是一个HTML符号。关于css中使用的“转义unicode”符号的信息似乎较少。还有其他像\2020这样的符号,我找到了,但没有箭头。箭头代码是什么?

453528 次浏览

为什么不直接将CSS文件保存为UTF-8格式呢?

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

如果这还不够好,你想保持全ascii:

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

Unicode字符在字符串中的一般格式是\000000\FFFFFF -一个反斜杠后跟六个十六进制数字。当Unicode字符是字符串中的最后一个字符或在Unicode字符后添加空格时,可以省略前导0数字。有关详细信息,请参阅下面的规范。


CSS2规范的相关部分:

第三,反斜杠转义允许作者引用他们不容易放入文档中的字符。在这种情况下,反斜杠后面最多跟着6个十六进制数字(0..9A..F),它代表具有该数字的ISO 10646 ([ISO10646])字符,该数字不能为零。(在css2.1中,如果样式表包含Unicode代码点为0的字符,则没有定义会发生什么。)如果十六进制数后面有[0-9a-fA-F]字符,则需要明确数字的末尾。有两种方法:

  1. 带空格(或其他空白字符):"\ 26b " ("&B")。在这种情况下,用户代理应该将“CR/LF”对(U+000D/U+000A)视为单个空白字符。
  2. 通过提供恰好6个十六进制数字:"\000026B" ("&B")

事实上,这两种方法可以结合使用。十六进制转义后只忽略一个空白字符。注意,这意味着转义序列后的“实”空格必须加倍。

如果数字超出了Unicode允许的范围(例如,“\110000”超过了当前Unicode允许的最大10FFFF), UA可能会用“替换字符”(U+FFFD)替换转义。如果要显示字符,则UA应该显示一个可见符号,例如“缺少字符”字形(cf. 15.2, point 5)。

    注意:反斜杠转义总是被认为是标识符或字符串的一部分(例如,"\7B"不是标点符号,即使"{"是,"\32"被允许在类名的开头,即使"2"不是) “te\st”标识符与“test”标识符完全相同

综合列表:Unicode字符“向下箭头”(U+2193)