Css 当我们使用文本转换:大写时,为什么IE7要求EOT字体包含小写字形?

Css 当我们使用文本转换:大写时,为什么IE7要求EOT字体包含小写字形?,css,internet-explorer-7,font-face,eot,Css,Internet Explorer 7,Font Face,Eot,本周,当使用@font-face结构嵌入EOT字体文件时,我们在IE7中偶然发现了一个相当奇怪的错误(惊喜,惊喜) 为了节省带宽,我们经常从我们知道不会在网站上使用的字体中编辑字符集。在这个特定的实例中,我们使用这种字体来表示标题,这些标题都是以标题大小写组成的,但是使用文本转换属性以大写字母显示。从逻辑上讲,我们只使用大写字符保存所有字体文件,因为我们不使用小写字符 该网站在支持@font-face结构的所有浏览器(包括IE6和IE8)中都表现得非常完美,但IE7除外。IE7仅以正确的字体显示

本周,当使用
@font-face
结构嵌入EOT字体文件时,我们在IE7中偶然发现了一个相当奇怪的错误(惊喜,惊喜)

为了节省带宽,我们经常从我们知道不会在网站上使用的字体中编辑字符集。在这个特定的实例中,我们使用这种字体来表示标题,这些标题都是以标题大小写组成的,但是使用
文本转换
属性以大写字母显示。从逻辑上讲,我们只使用大写字符保存所有字体文件,因为我们不使用小写字符

该网站在支持
@font-face
结构的所有浏览器(包括IE6和IE8)中都表现得非常完美,但IE7除外。IE7仅以正确的字体显示每个单词的第一个字符-其余字符以浏览器默认字体显示

我们绞尽脑汁终于发现,由于标题实际上是以标题大小写的(因此包含小写字符),即使部署了
text transform
属性并且字符以大写形式出现,IE7要求EOT文件中存在小写字母以显示大写字符。(直觉,不是吗?)

简单的修复方法是使用大写和小写标志符重建EOT文件,即使从未使用小写字符

  • 网上问题:
如何正确修复此问题?(即,让IE7呈现大写字符,而不必在字体中包含小写字形。)


谢谢

是否可以在服务器端转换案例?例如,php有以下功能:


这可能会解决IE7的问题,如果使用这样的函数是可行的。

我认为您已经有了最好的解决方案-只需在
.eot
中同时包含大写和小写标志符号即可

您的服务器正在使用HTTP压缩

当前的
.eot
22.62kb
,压缩为
13.87kb

即使添加大写glyph使大小加倍,它仍然只有28 KB压缩


除非有一个简单的“实际解决方案”来解决这个问题,否则就坚持下去。

a刚刚遇到了同样的问题,并且很快解决了它。


对于ie7来说,要使用文本转换“大写”来正确呈现字体,ie7在字体文件中定义小写字母就足够了,它们不需要包含真正的字母=字体文件中的小写字母可以为空,字体大小不会增加

如果你真的找到了解决办法,请在我的答案上留言让我知道。谢谢。你试过把
文本转换
放在
@font-face
之前吗?同时检查IE6是否在没有IE7JS脚本的情况下正确渲染。