Css IE7显示@font-face-character";连字符;方正

Css IE7显示@font-face-character";连字符;方正,css,font-face,Css,Font Face,我的IE7有一个@font-face问题。它将字符-显示为正方形。正常文本和其他特殊字符如&、/和+等正确显示 在我测试过的所有浏览器中,甚至在IE8中,它都能正常工作 以前是否有人遇到过这种情况,并且可能知道解决方案 我用于加载字体的CSS如下所示,我尝试使用文本转换:大写/小写来查看这是否是问题所在 @font-face { font-family: 'rex-bold'; src: url('fonts/rex_bold-webfont.eot'); src: url('fonts/rex

我的IE7有一个
@font-face
问题。它将字符
-
显示为正方形。正常文本和其他特殊字符如
&
/
+
等正确显示

在我测试过的所有浏览器中,甚至在IE8中,它都能正常工作

以前是否有人遇到过这种情况,并且可能知道解决方案

我用于加载字体的CSS如下所示,我尝试使用
文本转换:大写/小写
来查看这是否是问题所在

@font-face {
font-family: 'rex-bold';
src: url('fonts/rex_bold-webfont.eot');
src: url('fonts/rex_bold-webfont.eot?#iefix') format('embedded-opentype'),
    url('fonts/rex_bold-webfont.woff') format('woff'),
    url('fonts/rex_bold-webfont.ttf') format('truetype'),
    url('fonts/rex_bold-webfont.svg#rex_bold_bold') format('svg');
font-weight: normal;
font-style: normal;
}

这似乎是一个问题。它们不包含“-”连字符-U+002D(即通用Ascii连字符)。这意味着浏览器必须从另一种字体中获取该字符。你可以从截图上看到,连字符的设计不同——笔划更细,就像字母一样。结果可能因浏览器及其设置而异,而IE的旧版本在这里是出了名的糟糕——它们甚至可能根本无法渲染角色,而是显示一个小矩形,即使系统中有覆盖它的字体

要解决此问题,请设置一些备用字体,例如

font-family: rex-bold, Tahoma, Verdana, sans-serif;
您可以选择字体,使其连字符与Rex Bold的设计相匹配。这不可能是完美的,但是如果小心一点,您可以在大多数浏览器上获得更好的渲染效果


由于Rex Bold将所有字母设计为大写,因此连字符也应为大写样式。塔荷马和维达那也可以。对于某些现代字体,您可能可以使用
case
属性(在浏览器前缀形式中)在可用时选择这种变体字形。我已经编写了一个简单的程序来测试这些设置的效果。但是大多数字体都没有这么好的功能,所以你应该选择连字符符号“足够高”(足够粗体)的字体。

看看谢谢!有趣,特别是关于“IE的旧版本”的部分(≤7) 将使用找到的第一种字体,即使它不包含打印小正方形所需的字符”。我会进一步调查的!谢谢你的详尽回答!我一有时间就会用这个做一点实验。