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

Meg*_*Hit 8 css internet-explorer pseudo-element internet-explorer-9

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

a:after {
    content: '?';
}
Run Code Online (Sandbox Code Playgroud)

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

在这里,您可以看到它在现代浏览器中正常工作

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

在这里你看到它在IE中被打破(9)


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

Bol*_*ock 6

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

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

a:after {
    content: '\9660';
}
Run Code Online (Sandbox Code Playgroud)

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

@charset "UTF-8";
Run Code Online (Sandbox Code Playgroud)

请注意,@charset规则需要出现在样式表的最开头 ; 在@imported文件中我认为这不应该是一个问题,但是看到Sass实际上将文件组合在一起,这些文件@import在编译期间由规则链接,这将导致错误.对于Sass/SCSS,您需要将@charset规则放在主样式表的开头.

  • 你是说我每次保存SASS文件后都要更改它吗?有没有办法阻止SASS在那里添加? (2认同)