2013-03-27 21 views
5

例子 '黑星' ★(U + 2605)CSS内容的特殊字符:十六进制与正常字符

.a:after { 
    content: "\2605"; 
    position:absolute; 
} 

.b:after { 
    content: "★"; 
    position:absolute; 
} 

演示:http://jsfiddle.net/l2aelba/vBjxX/

为什么有人/最推荐使用HEX\2605在CSS值?两者都得到相同的结果。

+1

特殊字符可能无法正确显示某些字体/ IDE。刚刚在Netbeans上使用Inconsolata进行过测试,并且未显示该明星。 – 2013-03-27 10:56:35

回答

3

使用实际值代替硬编码特殊字符(如底部示例)会更好,因为由于CSS文件本身的编码,有可能无法正确显示它们。

+0

当图标字体映射到Unicode的专用区域时,也有一致性,因此字符在样式表中没有可视化表示。 – daveyfaherty 2013-03-27 11:14:14

2

您不需要记住一个可笑的键盘快捷键来添加一个unicode号码。

请记住,这个十六进制数字代表unicode中的一个独特和标准化的字符。 插入实际字符会让您置身于字符集的摆布之下,甚至是用来显示css的字体。

更重要的是,许多图标字体(Font Awesome是一个很好的示例)被映射为使用Unicode的专用区域之一。字体真棒字符在第一个私人使用区域内。

由于它在标准中的定义,在专用区域内没有标准化的字符。这意味着没有要显示的字符,所以样式表中唯一的有形表示是对它在unicode中的位置的数字引用。

这些图标为什么映射到目前为止?一个很大的原因是一些屏幕阅读器会读出在css内容中使用的任何字符。这可能看起来不对,但它确实发生了,并且需要防御。私人使用区域字符不会被读出。

就我个人而言,我的方法是使用键盘字符,并将unicode数字用于其他所有内容。即使如此,如果一个中国人想使用我的代码,我是否知道他们可以轻松访问自己键盘上的所有相同字符?他们将会有数字。

相关问题