css - 如何阻止 IE 在伪元素中混合相对字体大小?

标签 css internet-explorer

我有一些通过 CSS 中的伪元素设置的图标,如下所示:

.button a:before { 
  font-size: 1.3em;
  font-family: font-awesome; 
  content: "*";  
} 

其他地方还有其他类似的声明,例如

.button .otherclass a:before { 
  font-size: 1.35em; 
} 

这在现代网络浏览器中工作得很好,但 IE >= 9 混合了所有字体大小,因此生成的图标非常巨大(例如其大小的 5 倍)。我怎样才能防止这种情况发生?

(顺便说一句,有问题的实际代码 is here 。)

最佳答案

这是 IE 中的一个错误,如 Microsoft Connect 中所报告。 @Aibrean 提到的页面,但该页面还显示微软不承认这是一个错误(他们说他们无法重现它)。它可以通过以下简单文档在 Win 7 上的 IE 11 中重现:

<style>
.foo, .bar:before { 
  font-size: 2em;
  content: "X";  
}
.bar:before { 
  font-size: 5em; 
} 
</style>
X<span class=foo>X</span>
<span class=bar>bar</span>

第二个 X 应该是普通 X 的 5 倍大,但在 IE 中实际上是 10 倍大,因为 IE 错误地将 2em5em 的效果相乘>.

解决方法似乎是组织样式表,以便为每个元素仅设置一次生成内容的字体大小。也就是说,不会有两个 font-size 声明应用于同一个 :before:after 伪元素。

关于css - 如何阻止 IE 在伪元素中混合相对字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26388937/

相关文章:

html - 如何阻止容器 div 允许内容溢出?

HTML/CSS 复制网站复选框

jquery - 自动更改 JSlide

jquery - 先加载 DOM,再加载 css?

jquery - IE站点导航页面闪烁

html - IE 11 背景位置未正确呈现

javascript - 在 IE 中分析长时间运行的 javascript

javascript - IE9、IE11 和 Safari 的复制到剪贴板选项

javascript - 如何让我的 CSS slider 自动播放?

jQuery UI - "Object doesn' t 支持属性或方法 'tabs'“IE7