在CSS内容值中放置Unicode字符

dav*_*ave 301 css unicode symbols unicode-escapes

我有个问题.我找到了向下箭头的HTML代码,↓(↓)

凉.现在我需要在CSS中使用它,如下所示:

nav a:hover {content:"&darr";}
Run Code Online (Sandbox Code Playgroud)

这显然↓是行不通的,因为它是一个HTML符号.关于css中使用的这些"转义的unicode"符号的信息似乎较少.还有其他符号\2020,我发现但没有箭头.什么是箭头代码?

Mat*_*all 458

为什么不直接将CSS文件保存/提供为UTF-8?

nav a:hover:after {
    content: "?";
}
Run Code Online (Sandbox Code Playgroud)

如果这还不够好,你想保持全部 - ASCII:

nav a:hover:after {
    content: "\2193";
}
Run Code Online (Sandbox Code Playgroud)

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


CSS2规范的相关部分:

第三,反斜杠转义允许作者引用他们不能轻易放入文档的字符.在这种情况下,反斜杠后跟最多六个十六进制数字(0..9A..F),它代表带有该数字的ISO 10646([ISO10646])字符,该字符不能为零.(在CSS 2.1中未定义如果样式表确实包含Unicode代码点为零的字符会发生什么.)如果[0-9a-fA-F]范围内的字符跟随十六进制数字,则数字的结尾需要要清楚.有两种方法可以做到这一点:

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

实际上,这两种方法可以结合起来.在十六进制转义后,只会忽略一个空格字符.请注意,这意味着转义序列之后的"真实"空格必须加倍.

如果该数字超出Unicode允许的范围(例如,"\ 110000"高于当前Unicode允许的最大10FFFF),则UA可以用"替换字符"(U + FFFD)替换该转义.如果要显示该字符,则UA应显示可见符号,例如"缺少字符"字形(参见15.2,第5点).

  • 注意:反斜杠转义始终被视为标识符或字符串的一部分(即"\ 7B"不是标点符号,即使"{"是,并且在类名称的开头允许使用"\ 32",甚至虽然"2"不是).
    标识符"te\st"与"test"完全相同.

综合列表:Unicode字符'DOWNWARDS ARROW'(U + 2193).

  • 这是另一个箭头列表:http://unicode-table.com/en/sets/arrows-symbols/使用"U +"代码,但将"U +"替换为"\".例如,"U + 25C0"变为`content:"\ 25C0";` (33认同)
  • 此[实体转换计算器](http://www.evotech.net/articles/testjsentities.html)可能很方便. (8认同)
  • 一个细节,要在转义字符后添加空格,需要添加两个空格`\2193␣␣'.这是因为第一个空格被CSS解析器吃掉了.如果Unicode编号为5个或更少字符,则属于这种情况. (5认同)