CSS:在内容中编码字符之后

the*_*ise 46 css unicode css-selectors pseudo-element css-content

我正在使用以下CSS,它似乎正在工作:

a.up:after{content: " ?";}
a.down:after{content: " ?";}    
Run Code Online (Sandbox Code Playgroud)

然而,字符似乎不能像这样编码,因为输出是文字的并显示实际的字符串:

a.up:after{content: " ↓";}
a.down:after{content: " ↑";}   
Run Code Online (Sandbox Code Playgroud)

如果我不能对它进行编码,感觉我应该在jQuery中使用诸如.append()之类的东西,因为它支持编码.有任何想法吗?

Bol*_*ock 89

要使用编码的Unicode字符,content您需要提供字符本身(就像您一样),或者提供UTF-8转义序列而不是HTML实体:

a.up:after { content: " \2193"; }
a.down:after { content: " \2191"; }   
Run Code Online (Sandbox Code Playgroud)

  • 这是一个在线图表:http://htmlhelp.com/reference/html40/entities/symbols.html (6认同)
  • 在包含转换表的此页面中,应该有一个附加列,用于为CSS"内容"定义提供值.例如:ƒ 对于CSS内容,HTML的十六进制值为"\ 192",依此类推. (4认同)
  • @danixd:在Windows上有字符映射(在所有程序>附件>系统工具中找到).您也应该能够通过搜索Web找到UTF-8字符表及其转义表. (3认同)
  • 哦,这有效,太棒了,谢谢。出于兴趣,您在哪里找到 UTF-8 转义序列。我以前从未见过这样的事情。(等待接受答复的时间限制) (2认同)

Fel*_*lix 11

为什么要对这些字符进行编码呢?记住,你是在编写CSS,而不是HTML.你的代码:

a.up:after{content: " ?";}
a.down:after{content: " ?";}
Run Code Online (Sandbox Code Playgroud)

完全有效,只要您使用UTF-8编码保存文件并发送相应的标头:

Content-Type: text/css; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

编码字符仅在HTML中使用,因此内容和标记之间不存在歧义.因此,您将进行编码<,&lt;以便浏览器不认为它是标记的开头.&darr;对于那些不知道如何使用utf-8(或不能,无论出于何种原因):)的人来说,这些东西只是商品.

  • 但是为什么不对内容进行编码以使其尽可能兼容呢?是的,以后(或由其他开发人员)查看代码时,编码后的值将不会“可读”,但是您始终可以为此添加注释...并且在这种情况下,您无需记住保存整个代码在UTF / Unicode中。 (2认同)