在CSS内容值中放置Unicode字符

时间:2012-05-01 04:13:26

标签: css unicode symbols unicode-escapes

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

冷却。现在我需要在CSS中使用它:

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

由于↓是HTML符号,因此显然无效。关于css中使用的这些“转义的unicode”符号的信息似乎较少。我找到了其他符号,例如\2020,但没有箭头。什么是箭头代码?

1 个答案:

答案 0 :(得分:441)

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

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

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

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

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


Relevant part of the CSS2 spec

  

第三,反斜杠转义允许作者引用他们不能轻易放入文档的字符。在这种情况下,反斜杠后跟最多六个十六进制数字(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.   
  3. 提供正好6个十六进制数字:“\ 000026B”(“& B”)
  4.         

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

         

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

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

综合清单:Unicode Character 'DOWNWARDS ARROW' (U+2193)