【问题标题】:Placing Unicode character in CSS content value [duplicate]在 CSS 内容值中放置 Unicode 字符 [重复]
【发布时间】:2012-05-10 17:31:04
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您需要 :before:after 才能使内容正常工作
  • 一个简单的 Google 搜索显示 blooberry.com/indexdot/html/tagpages/entities/arrow.htm 列出了许多箭头的 Unicode 代码点。
  • @Phrogz 不幸的是,该站点在 unicode 中不包含“/”,所以通常我不知道我必须在代码中添加“/”才能使其工作css。我现在知道我必须添加“/”才能使其正常工作。
  • @davecave,实际上是反斜杠 (\)。
  • 很棒的工具:evotech.net/articles/testjsentities.html(没有个人联系;我只是用它)

标签: css unicode symbols unicode-escapes


【解决方案1】:

为什么不将 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. 通过提供正好 6 个十六进制数字:“\000026B”(“&B”)

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

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

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

综合列表:Unicode Character 'DOWNWARDS ARROW' (U+2193)

【讨论】:

  • 这是另一个箭头列表:unicode-table.com/en/sets/arrows-symbols 使用“U+”代码,但将“U+”替换为“\”。例如“U+25C0”变成content: "\25C0";
  • 这个Entity Conversion Calculator 可能很方便。
  • 一个细节,转义字符后面要加一个空格,需要加两个空格`\2193␣␣'。这是因为第一个空间被 CSS 解析器吃掉了。如果 Unicode 编号为 5 个或更少字符,就会出现这种情况。
  • 对于任何来到这里试图让它与内容 CSS 属性和 iOS 一起工作的人,您需要使用您的符号/代码点,然后是不带“u”的 unicode 变体,例如内容:“\2b06\fe0e”
  • @RoCk 我没有使用 Font Awesome 的经验;这回答了你的问题了吗? stackoverflow.com/a/17256965/139010
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
  • 2010-11-24
  • 2012-03-03
  • 2011-08-17
相关资源
最近更新 更多