【问题标题】:Font Awesome Background color字体真棒背景颜色
【发布时间】:2014-12-18 10:16:48
【问题描述】:

当使用出色的 Font Awesome 时,如何使图标不透明 - 例如,如果我想使用 http://fortawesome.github.io/Font-Awesome/icon/chevron-circle-up/ 但黑色圆圈内的“向上箭头”不透明但纯色(白色)?

谢谢!

【问题讨论】:

    标签: font-awesome


    【解决方案1】:

    我只是在字体真棒链接中使用了这样的样式...

    <i class="fa fa-ban icon" style="background:#8BAAAD"></i>
    

    【讨论】:

      【解决方案2】:

      更新: 正如 xavier 在下面指出的,font-awesome 有Stacked Icons,它可以让你在图标后面放一个圆圈,而无需使用 hack。本质上,您可以将所需的任何图标堆叠在他们的fa-circle 图标之上。然后,您可以独立于图标设置圆的样式,并将其更改为您喜欢的任何颜色。

      这是一个基于他们网站上的代码的示例:

      .fa-circle {
        color: black;
      }
      <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"/>
      
      <span class="fa-stack" style="vertical-align: top;">
        <i class="fas fa-circle fa-stack-2x"></i>
        <i class="fas fa-chevron-up fa-stack-1x fa-inverse"></i>
      </span>

      原始答案: 不幸的是,整个图标被认为是页面上的单个“字符”,因此,您无法对其进行精细控制。您可以简单地设置一个“颜色”属性来将字符/图标的颜色设置为您想要的颜色。

      现在,虽然可以进行创意破解。由于字符的中间是透明的,您可以通过执行以下操作在字符后面设置彩色背景,使其看起来中间是不同的颜色:

          <i class="fa fa-chevron-circle-up"></i>
      

      然后在你的 CSS 中:

      .fa-chevron-circle-up {
        background: yellow;
        border-radius: 50%;
        height: 1em;
        width: 1em;
      }
      

      如果背景圆圈偏移了图标,可以使用line-height修复。

      【讨论】:

      • 在任何带有黑色圆圈的地方,这是在中间获得 BG 颜色的绝妙方法。
      【解决方案3】:

      我发现的最简单的解决方案是只使用带有径向渐变的背景。 HTML:

      <i aria-hidden="true" class="fa fa-arrow-alt-circle-up fa-3x"></i>
      

      CSS:

      .fa{
          color: red; 
          background: radial-gradient(grey 50%, transparent 50%);
      }
      

      您可以只更改您想要的颜色或选择器,但这将防止背景颜色超过圆形箭头或任何类似的东西。

      希望这对某人有所帮助,因为其他一些答案无法很好地扩展。

      【讨论】:

        【解决方案4】:

        对于 fa-plus-circle,白色背景的字体大小从 1px 缩放到 150px。

        // Note: Change background color to match your criteria
        
        // SCSS
        .fa-bg-white {
          position: relative;
        
          &:before {
            position: relative;
            z-index: 1;
          }
        
          &:after {
            position: absolute;
            content: '';
            background: #FFF;
            border-radius: 50%;
            z-index: 0;
            top: 10%;
            left: 10%;
            width: 75%;
            height: 75%;
          }
        }
        
        
        // HTML
        <i class="fa fa-plus-circle fa-bg-white"></i>
        

        【讨论】:

          【解决方案5】:

          您可以将 fa-stack 与另一个下方的 fa-circle 图标一起使用,以更好地控制边界处的像素:

          <span class="fa-stack">
              <i class="fa fa-circle fa-stack-1x icon-a"></i>
              <i class="fa fa-times-circle fa-stack-1x icon-b"></i>
          </span>
          

          与:

          .icon-a {
              color: #FFF;
              font-size: 0.9em;
          }
          .icon-b {
              color: #000;
          }
          

          【讨论】:

          • 这对我来说效果很好,似乎是一个非黑客解决方案
          • 为什么您的 CSS 规则在属性名称和值周围有引号?
          • 不记得了,可能粘贴的时候出错了,去掉吧。
          【解决方案6】:

          我为仍然感兴趣的人准备了另一个技巧:

          <i class="fa fa-chevron-circle-up fa_with_bg"></i>
          

          还有css:

          .fa_with_bg{
              position: relative;
          }
          
          .fa_with_bg::after{
              position: absolute;
              content: '';
              background: #fff;
              z-index: -1;
              top: 10px;
              left: 3px;
              width: 35px;
              height: 33px;
          }
          

          您只需将fa_with_bg 类添加到它。
          * 您可能需要对topleftwidthheight 属性进行一些尝试。

          【讨论】:

          • 对我不起作用。为了让它工作,我稍微改变了你的 css:我给 ::before 阴影元素 position: relative; z-index: 1; 并给 ::after 元素一个 z-index 0
          • 这对我有用,尤其是在添加边框半径以适合我的人字形圆圈图标时
          猜你喜欢
          • 2019-12-22
          • 2019-02-12
          • 1970-01-01
          • 2017-04-23
          • 1970-01-01
          • 2015-08-14
          • 2014-08-14
          • 2021-09-05
          • 2016-03-16
          相关资源
          最近更新 更多