2012-03-12 66 views
1

我的样式表字符集包含类似下面的CSS代码:指定的样式表

#nav > li::after { 
    content: " ➻"; 
} 

您可能会注意到➻不是一个ASCII字符,因此它的“危险”,包括它在文件中没有指定一个字符集。

现在事情已经顺利,我从来没有碰到与CSS样式表(主要是因为用户代理越来越善于猜测“UTF-8”更好)编码的问题,但我想知道是否有一个正确的方式明确指定它。

我已经试过这样:

<link rel="stylesheet" type="text/css; charset=UTF-8" href="foo.css"/> 

但它似乎并没有做任何事情,我尽量去指定一个虚假的编码,它仍然正确显示。

+0

相关:[为什么在你的css文件中指定@charset“UTF-8”](http://stackoverflow.com/questions/2526033/why-specify-charset-utf-8-in-your-css-file ) – 2012-03-12 03:28:21

+0

@Madmartigan,我不知道“@ charset”。这几乎是我在找的东西。 – zneak 2012-03-12 03:31:08

+1

我敢肯定,除非你想比其他的东西也没用任何默认/当前字符集是,或者只是偏执[来源请求]。 – 2012-03-12 03:32:43

回答

3

研究发现,引文,我需要:

http://www.w3.org/TR/CSS2/syndata.html#charset

当样式表驻留在单独的文件中,用户端必须 确定的样式表的 字符编码时遵守以下优先级(从最高优先级到最低):

  1. “Content-Type”字段中的HTTP“字符集”参数(或o中的类似参数疗法协议)
  2. BOM和/或@charset(见下文)
  3. 或其他元数据从所述连接机构(如果有的话)
  4. 参照字符集的样式表或文件(如果有的话)
  5. 假设的UTF- 8

所以,尽管@charset "UTF-8";是相关的,HTTP头将其覆盖。您可以<meta charset="utf-8">指定HTML文档的meta标签的字符集,这将满足#4,和用户代理应该回落到UTF-8反正。

与这些“字形”的,这一点很重要的是,最终用户至少安装了一个字体,支持它,所以记住这一点,在写你的CSS。并非所有的字体都支持所有的Unicode字符。

相关问题