CSS伪元素▼在IE中变成乱码

时间:2012-03-18 16:25:42

标签: css internet-explorer internet-explorer-9 pseudo-element

我使用▼字符作为我的伪元素的内容:

a:after {
    content: '▼';
}

这适用于所有现代(读取:非IE)浏览器:

Here you see that it's working correctly in modern browsers

但是在IE(9)中,我只是得到了胡言乱语:

Here you see that it's broken in IE(9)


我想这与字符编码有关,但我不知道从哪里开始。

3 个答案:

答案 0 :(得分:6)

确保您的网页和样式表都已编码并作为UTF-8提供。大多数编辑应该能够告诉你任何打开文件的编码。

您也可以选择使用Unicode序列\9660,但您需要确保将文档编码为UTF-8,否则它可能无法正常工作:

a:after {
    content: '\9660';
}

或者如果您的样式表有@charset规则,则需要指向UTF-8:

@charset "UTF-8";

请注意@charset rules need to appear at the very beginning of a stylesheet;在@import ed文件中我认为这不应该是一个问题,但看到Sass实际上将文件组合在一起,在编译期间通过@import规则链接,这将导致错误。对于Sass / SCSS,您需要将@charset规则放在主样式表的开头。

答案 1 :(得分:0)

除了@ BoltClock的答案之外,请务必send appropriate headers from your server,并且,或许只是为了更好的衡量标准,在<meta charset="utf-8" />代码中添加<head>

答案 2 :(得分:0)

您也可以尝试在菜单中添加背景图片。

 a{background:url("http://pathtoyourimage/");}