如何更改 Font Awesome 5 中图标的颜色?

How to change color of icons in Font Awesome 5?

我无法使用这些代码为 Font Awesome 5 图标着色。我尝试了 fill css 属性 来设置颜色,但是没有用。

HTML代码:

<div class="container mt200 icons">
  <div class="col-md-3">
    <div class="bggray2 text-center">
      <i class="fas fa-microphone fa-5x"></i>
      <div class="title">LOREM</div>
      <div class="text">Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.</div>
    </div>
  </div>
  <div class="col-md-3">
    <div class="bggray2 text-center">
      <i class="far fa-edit fa-5x"></i>
      <div class="title">LOREM</div>
      <div class="text">Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.
      </div>
    </div>
  </div>
</div>

CSS代码:

.icons i {
  color: #2759AE;
}

Font Awesome 5 使用 svg 作为图标,path 内部设置为 fill:currentColor 所以只需更改 svg:

的颜色

.icons svg {
 color:#2759AE;
}
<script defer src="https://use.fontawesome.com/releases/v5.5.0/js/all.js"></script>
<div class="container mt200 icons">
  <div class="col-md-3">
    <div class="bggray2 text-center">
      <i class="fas fa-microphone fa-5x"></i>
      <div class="title">LOREM</div>
      <div class="text">Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.</div>
    </div>
  </div>
  <div class="col-md-3">
    <div class="bggray2 text-center">
      <i class="far fa-edit fa-5x"></i>
      <div class="title">LOREM</div>
      <div class="text">Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.
      </div>
    </div>
  </div>
</div>

正如您在代码中看到的,当您加载 JS 版本时,i 被替换为 svg


如果您使用的是 CSS 版本,您可以将颜色应用于 i

.icons i {
 color:#2759AE;
}
<link href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" rel="stylesheet"><div class="container mt200 icons">
  <div class="col-md-3">
    <div class="bggray2 text-center">
      <i class="fas fa-microphone fa-5x"></i>
      <div class="title">LOREM</div>
      <div class="text">Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.</div>
    </div>
  </div>
  <div class="col-md-3">
    <div class="bggray2 text-center">
      <i class="far fa-edit fa-5x"></i>
      <div class="title">LOREM</div>
      <div class="text">Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui.
      </div>
    </div>
  </div>
</div>

因此,为了确保它在所有情况下都能正常工作,只需使用两个选择器:

.icons i,
.icons svg {
   color: #2759AE;
}

如果您使用的是 Font Awesome 5 的 svg-with-js 版本,它会获取 <i></i> 中的所有内容并将其预处理为 <svg>。它指定路径有 fill="currentColor" 因此,您必须以某种方式将 currentColor 设置为您想要的颜色。一种选择是:

svg {color: blue;}

official docs推荐内联样式:

<i class="far fa-edit fa-5x" style="color:blue"></i>

或者,在其中一个外部元素中设置 currentColor。例如:

<div class="bggray2 text-center" style="color: blue;">
  <i class="far fa-edit fa-5x"></i>
</div>

要将其移动到 CSS 文件,您可以:

div .bggray2 {
    color: blue;
}

如果您使用的是 Bootstrap 4,则可以在标签的父级中使用和 text-'color' 设置。

<div class="bggray2 text-danger">
 <i class="far fa-edit fa-5x"></i>
 </div>