是否可以为fontawesome图标颜色着色?

时间:2013-07-09 05:09:31

标签: css font-awesome

我可以更改fontcolor,但不能更改“填充”。我首先尝试设置背景颜色,但填充整个图标框区域。

例如,我有

<i class="icon-star-empty icon-large"></i>

但我希望它是黄色的。

编辑: 用例是我想要一个“最喜欢的”图标为灰色轮廓,点击后,轮廓变为橙色,填充为黄色。

7 个答案:

答案 0 :(得分:71)

Font-awesome附带了许多概述和填充icons star就是其中之一

您可以使用四种不同的星形图标类:

class="icon-star"
class="icon-star-empty"
class="icon-star-half"
class="icon-star-half-empty"

如果你是一个玻璃半满的人,你也可以使用'icon-star-half-empty'的别名:

class="icon-star-half-full"

您可以为字体 - 真棒图标着色并使用不同的效果来实现您的目标:

<i class="icon-star-empty icon-large icon-a"></i><br><br>
<i class="icon-star-empty icon-large icon-b"></i><br><br>
<i class="icon-star icon-large icon-c"></i> or <i class="icon-star icon-large icon-d"></i>

使用以下CSS(而不是使用内联样式):

.icon-a {
    color: #888;
} 
.icon-b {
    color: orange;
}
.icon-c {
    color: yellow;
}
.icon-d {
    color: yellow;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: orange;
}

如果您不想使用icon-large,也可以替换/设置尺寸。

以上代码输出以下内容:

enter image description here

但是我已经在JSFiddle中添加了上面的代码和一些选项,你can look at here

还可以使用提供一种动画更改CSS属性的方法,而不是让更改立即生效或与结合使用。

答案 1 :(得分:8)

您只需要设置color: yellow即可。因为图标是一种字体,所以它们会以相同的方式将您设置的任何颜色设置为任何其他字体(文本)。

如果你想将整个星星填充为黄色,请尝试使用icon-star而不是icon-star-empty

你可以试试这个

-webkit-text-stroke-width: 1px;
-webkit-text-stroke-color: orange;

将笔划(轮廓)添加到字体本身。我希望那就是你要找的东西。

并填写它只需使用正常的

color: yellow;

答案 2 :(得分:6)

&#34; -webkit-text-stroke&#34;这是FF和IE不完全支持的,所以我在这种情况下做的是在普通星内部的伪类中使用半星,如下所示:

.icon-star.red-border {
    position: relative;
    color: blue;
    font-size: 24px;
}

.icon-star.red-border:after {
    content: "\f006";
    color: red;
    position: absolute;
    left: 0;    
}

对我有用,这里是fiddle

感谢。

答案 3 :(得分:6)

如果你来到这里就像我想要一个单独的“填充”颜色的图标而不是字体颜色(例如,Facebook图标的“F”是透明的,并显示其背后的任何背景),这是你的答案:

<p class="fa-stack fa-lg">
    <i class="fa fa-square fa-stack-2x fa-2x fa-inverse"></i>
    <i class="fa fa-facebook-square fa-stack-2x fa-2x"></i>
</p>

您可以使用常规的圆角正方形并将其堆叠在您想要显示的图标下。如果您希望它为白色,则可以指定fa-inverse,假设您的默认值为黑色。 More info here

答案 4 :(得分:0)

除上述答案外,有时您想向字体/图标添加笔画/边框。在这种情况下,将显示以下内容。

至少在WebKit中。示例:

h1 {
   -webkit-text-stroke-width: 1px;
   -webkit-text-stroke-color: black;
}

或速记:

h1 {
  -webkit-text-stroke: 1px black;
}

该笔划在WebKit中有效,但在其他浏览器中消失了!另类? 我们可以使用text-shadow属性并模拟笔划。

h1 {
    text-shadow: -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black, 1px 1px 0 black;
}

我们使用四个阴影,每个阴影有1px的黑色偏移(不扩散),分别位于右上,左上,左下和右下。

唯一的保留对象是IE9及更低版本,当然您可以使用IE特定的CSS进行解释。

P.S。也供我自己参考。

来源:Link

答案 5 :(得分:0)

如果使用reactjs并在组件下方

<i className="icon-star-empty icon-large" style={{color: "grey", fontSize: "70px"}}></i>

答案 6 :(得分:0)

我最近使用非常简单的CSS做到了这一点,仅使用一个超棒的字体图标。这些图标呈现为SVG。

它是如何工作的,我使用的是实心/实心图标,但是将其变为白色并添加了黑色边框,使其显得空白。单击它后,我可以切换.fill类以将颜色更改为金色,使其变为实心。

HTML:

<i class="fas fa-star"></i>

CSS:

.fa-star {
    stroke: #000;
    stroke-width: 30px;
    color: white;
    cursor: pointer;
}

.fa-star.fill {
     color: #ffd700 /* gold */
}

使用jQuery进行切换的JS:

$('body').on('click', ".fa-star", function () {
     favorite(this);
});

function favorite(item) {
     $(item).toggleClass("fill");
}