При использовании великолепного Font Awesome, как сделать значки непрозрачными - например, если я хочу использовать http://fortawesome.github.io/Font-Awesome/icon/chevron-circle-up/, но" стрелка вверх "внутри черного круга не должна быть прозрачной, но сплошной (белой)?

Благодарность!

36
John Anderson 23 Окт 2014 в 00:17

6 ответов

Лучший ответ

ОБНОВЛЕНИЕ: Как указал Ксавьер ниже, font-awesome имеет составные значки < / a>, который позволит вам поставить кружок за значком без использования взлома. По сути, вы складываете любой значок поверх его значка 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, чтобы исправить это.

56
Kyle Goode 22 Дек 2021 в 01:35
1
На любом предмете с черным кругом это отличный способ получить цвет BG посередине.
 – 
Doyle Lewis
23 Окт 2014 в 00:40

Вы можете использовать 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;
}
42
Jacob Raccuia 13 Янв 2018 в 02:24
2
Это сработало для меня и, похоже, не является хакерским решением.
 – 
Andy Mehalick
20 Сен 2015 в 17:17
3
Почему в ваших правилах CSS имена и значения свойств заключаются в кавычки?
 – 
j08691
1 Май 2017 в 17:30
Не помню, может ошибка при вставке, удалите.
 – 
xavier bs
18 Май 2017 в 01:14

Я просто использовал стиль внутри потрясающей ссылки шрифта, как этот...

<i class="fa fa-ban icon" style="background:#8BAAAD"></i>
0
user3319732 9 Янв 2022 в 22:01

Самым простым решением, которое я нашел, было просто использовать фон с радиальным градиентом. 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%);
}

Вы можете просто изменить желаемые цвета или селекторы, но это не позволит цвету фона переходить через круглые стрелки или что-то подобное.

Надеюсь, это кому-то поможет, так как некоторые другие ответы не будут хорошо масштабироваться.

9
Mike 27 Сен 2019 в 17:08

Белый фон масштабируется от размера шрифта от 1 до 150 пикселей для fa-plus-circle.

// 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>
0
SoEzPz 20 Июн 2019 в 08:27

У меня есть еще один совет для людей, которым все еще интересно:

<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.
* Возможно, вам придется немного поиграть со свойствами top, left, width и height.

9
Igor Ivancha 1 Май 2016 в 18:56
У меня не сработало. Чтобы он работал, я немного изменил ваш css: я дал элементу :: before shadow position: relative; z-index: 1; и дал элементу :: after z-index 0.
 – 
Jacob van Lingen
26 Июн 2015 в 12:02
1
Это сработало для меня, особенно при добавлении радиуса границы, чтобы соответствовать моему значку шевронного круга.
 – 
surfbird0713
28 Июл 2015 в 20:52