我对任何可以帮助我解决 ie8 中字体问题的人表示无限的崇拜和钦佩。是的,我知道 ie8 并不好玩,但我需要让它发挥作用,因为……好吧,因为。
问题与 ie8 拒绝更新 :before 伪元素有关,如果 content: 保持不变。这使得当元素的父级收到 css 类更新(例如通过 jquery 或 javascript 的“选择”)时,控制字体颜色变得相当困难。什么是强制重新绘制伪元素的优雅方法:在内容之前?
<style>
.items div {color:red;}
.items dig.selected {color:green;}
</style>
$('.toggle').on('click', function(){$('.items').toggleClass('selected');});
<div class="items">
<div class="selected">item 1<i class="icon-arrow-left"></div>
<div>item 2<i class="icon-arrow-left"></i></div>
<a id="toggle">Toggle</a>
</div>
我做了一个 jsfiddle 来演示手头的问题:http: //jsfiddle.net/SLpAE/1/
奇怪的是,在 ie >= 9 和 7 以及 ie8 兼容模式(有不同的问题)下工作,也可以在 Chrome、safari 和 FF 中工作