0

设置color:white;甚至使用该类icon-lighticon-white使所有字体真棒图标变白,除了fa-star无论我做什么都保持黄色!

我尝试过使用与!important在元素的内联样式中使用一样绝望的方法来覆盖 css。星星仍然是黄色的!(见下图)

为什么会这样,我如何使它变白?

(为了支持IE7,使用font-awesome 3.2.1,别问我为什么) 在此处输入图像描述

本质上这是我的标记:

<i class="icon-white icon-star" style="color:white;"></i>

或者就像我在下面截屏时的样子:

<i class="icon-light icon-star" style="color:white !important;"></i>

从图片中可以看出,这个内联样式的规则本质上覆盖了一堆其他的 css 规则,说同样的事情;color应该是white

这种行为特别有趣的是,“Computed Styles”下的 chromes 调试器实际上声称星星是白色的。如您所见,情况并非如此。

编辑:我实际上设法解决了这个问题,但我不知道为什么我的解决方案有效,所以我会留下这个问题,希望有人可以深入了解这里实际发生的事情。这是我所做的:

如果您查看 font-awesome.css,您会发现以下块:

.icon-star:before{
content:"\f005";
}

作为继续研究这个神秘错误的第一步,我将我的类更改<i>white-star并将以下内容添加到我的样式表中:

 .white-star:before{
 content:"\f005";
}

当我惊讶地发现星星是白色的时,我正打算从那里尝试其他一些东西!

这不再是一个需要解决的问题,但我真的很想知道这里发生了什么,所以我只是把这个问题留着,希望有人可以提供一些见解(对我和社区)。

4

2 回答 2

1

黄色是因为它是位图表情符号。要获得矢量(无色)符号,您需要为UNICODE VARIATION SELECTOR-15强制渲染为矢量的字符添加后缀。这记录在这里: http: //mts.io/2015/04/21/unicode-symbol-render-text-emoji/

VARIATION SELECTOR-15U+FE0E

于 2015-04-24T21:11:16.290 回答
0

所以我终于想通了。当然,解决方案是显而易见的!

icon-star 的颜色在.icon-star:before元素上设置。我在这里做错的是为.icon-star元素设置颜色规则。颜色当然是继承的,但继承不会覆盖直接设置为子元素的规则(doh!)。这就是为什么添加!important没有效果。

道德是:在为 FA 图标设置样式时,将样式设置为伪元素,而不是父元素!

于 2015-05-08T20:14:22.553 回答