Могу ли я добавить цвет к значкам начальной загрузки только с помощью CSS?


159

Начальная загрузка Twitter использует иконки от Glyphicons . available in dark gray and whiteПо умолчанию они " ":

Picture-58.png

Можно ли использовать некоторые хитрости CSS, чтобы изменить цвета значков? Я надеялся на какой-то другой блеск css3, который не позволил бы установить изображение значка для каждого цвета.

Я знаю, что вы можете изменить цвет фона элемента enclosing ( <i>), но я говорю о цвете переднего плана значка. Я думаю, можно было бы изменить прозрачность изображения значка, а затем установить цвет фона.

Итак, можно ли добавить цвет к значкам начальной загрузки только с помощью CSS?


Я так не думаю ... Но вы могли бы сделать это с помощью javascript и элемента canvas.
bfavaretto

@bfavaretto - можешь уточнить? Вы имеете в виду придумывать код / ​​координаты для рисования каждой иконки или как-то использовать существующее изображение в формате png?
cwd

1
Извините, я недостаточно опытен с элементом canvas, чтобы предложить вам код, но я знаю, что вы можете управлять пикселями индивидуально с помощью canvas.
bfavaretto

Ответы:


189

Да, если вы используете Font Awesome с Bootstrap! Значки немного отличаются, но их больше, они отлично выглядят при любом размере, и вы можете изменить их цвет.

В основном значки являются шрифтами, и вы можете изменить их цвет только с помощью свойства CSS color. Инструкции по интеграции находятся внизу страницы в предоставленной ссылке.


Изменить: Bootstrap 3.0.0 иконки теперь шрифты!

Как и некоторые другие люди упоминали с выпуском Bootstrap 3.0.0, глифы значков по умолчанию теперь являются шрифтами, такими как Font Awesome, и цвет можно изменить, просто изменив colorсвойство CSS. Изменение размера может быть сделано через font-sizeсвойство.


9
Ааа, умно! Не забудьте установить, cursor: default;чтобы пользователи не видели I-Bar. Кроме того, проверьте FF Chartwell, действительно умный шрифт: tktype.com/chartwell.php
Dai

4
Когда вы наводите курсор мыши на текст (как в текстовом редакторе), ваш курсор выглядит как крупный Iсимвол " ", он используется для выделения текста. В CSS это называется cursor: text;. Это также известно как "Я луч".
Дай

38

В последнем выпуске Bootstrap RC 3 изменить цвет значков так же просто, как добавить класс с нужным цветом и добавить его в диапазон.

Черный цвет по умолчанию:

<h1>Password Changed <span class="glyphicon glyphicon-ok"></span></h1>

станет

<h1>Password Changed <span class="glyphicon glyphicon-ok icon-success"></span></h1>

CSS

.icon-success {
    color: #5CB85C;
}

Bootstrap 3 Glyphicons List


17

Поскольку глифы теперь являются шрифтами, можно использовать контекстные классы, чтобы применить соответствующий цвет к значкам.

Например: <span class="glyphicon glyphicon-info-sign text-info"></span> добавление text-infoк CSS сделает иконку синего цвета.


Спасибо, искал способ применить контекстные классы. Любой из текстовых * контекстных классов будет работать
Дастин Ходжес

14

Другой возможный способ получить значки начальной загрузки другого цвета - создать новый .png нужного цвета (например, magenta) и сохранить его как / path-to-bootstrap-css / img / glyphicons-halflings- magenta .png

В вашем variables.less находке

// Sprite icons path
// -------------------------
@iconSpritePath:          "../img/glyphicons-halflings.png";
@iconWhiteSpritePath:     "../img/glyphicons-halflings-white.png";

и добавьте эту строку

@iconMagentaSpritePath:     "../img/glyphicons-halflings-magenta.png";

В твои спрайты. Без добавления

/* Magenta icons with optional class, or on hover/active states of certain elements */
.icon-magenta,
.nav-pills > .active > a > [class^="icon-"],
.nav-pills > .active > a > [class*=" icon-"],
.nav-list > .active > a > [class^="icon-"],
.nav-list > .active > a > [class*=" icon-"],
.navbar-inverse .nav > .active > a > [class^="icon-"],
.navbar-inverse .nav > .active > a > [class*=" icon-"],
.dropdown-menu > li > a:hover > [class^="icon-"],
.dropdown-menu > li > a:hover > [class*=" icon-"],
.dropdown-menu > .active > a > [class^="icon-"],
.dropdown-menu > .active > a > [class*=" icon-"],
.dropdown-submenu:hover > a > [class^="icon-"],
.dropdown-submenu:hover > a > [class*=" icon-"] {
  background-image: url("@{iconMagentaSpritePath}");
}

И используйте это так:

<i class='icon-chevron-down icon-magenta'></i>

Надеюсь, это кому-нибудь поможет.


5
просто хотел повторитьI was hoping for some other css3 brilliance that would prevent having to have an icon image set for each color
cwd

Не может быть сделано только через CSS, который также совместим с разными браузерами. Обычно людям нужна цветовая схема со связанными значками - так что я бы сказал, что до 5 наборов цветов не так уж сложно.
foxybagga

@seppludger Как создать новый цветной спрайт халфлинга? Вам удалось это сделать? Я не могу изменить цвета, если я загружаю их в любом графическом редакторе.
Норман,

7

Быстрая и грязная работа, которая сделала это для меня, не окрашивая иконку, а окружая ее ярлыком или значком нужного вам цвета;

<span class="label-important label"><i class="icon-remove icon-white"></i></span>
<span class="label-success label"><i class="icon-ok icon-white"></i></span>

Ваш ответ был полезен, + 1. Я хотел использовать значок редактирования и хочу поставить желтый цвет. Подскажите, пожалуйста, как это сделать?

Ну, вы могли бы просто поменять иконку - хорошо на что-то другое; например, <span class = "label-warning label"> <i class = "icon- <iconname> icon-white"> </ i> </ span>. Например: <span class = "label-warning label"> <i class = "icon-edit icon-white"> </ i> </ span>. Лучше пойти на новый загрузчик Imo ..
Frbl

6

Bootstrap Glyphicons - это шрифты. Это означает, что его можно изменить, как и любой другой текст, с помощью стилей CSS.

CSS:

<style>
   .glyphicon-plus {
       color: #F00; 
   }
</style>

HTML:

<span class="glyphicon glyphicon-plus"></span>

Пример:

<!doctype html>
<html>
<head>
<title>Glyphicon Colors</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style>
   .glyphicon-plus {
        color: #F00;    
   }
</style>
</head>

<body>
    <span class="glyphicon glyphicon-plus"></span>
</body>
</html>


Посмотрите курс « Запуск и запуск с Bootstrap 3 » Джен Крамер или посмотрите индивидуальный урок по переопределению основного CSS с помощью пользовательских стилей .


4

Это все немного окольными ..

Я использовал глифы, как это

  </div>
        <div class="span2">
            <span class="glyphicons thumbs_up"><i class="green"></i></span>
        </div>
        <div class="span2">
            <span class="glyphicons thumbs_down"><i class="red"></i></span>
        </div>

и чтобы повлиять на цвет, я включил немного CSS в голову, как это

<style>
        i.green:before {
            color: green;
        }
        i.red:before {
            color: red;
        }
    </style>

Вуаля, зеленые и красные пальцы.


4

Также работает с тегом style:

<span class="glyphicon glyphicon-ok" style="color:#00FF00;"></span>

<span class="glyphicon glyphicon-remove" style="color:#FF0000;"></span>

введите описание изображения здесь


3

На самом деле это очень просто:

просто используйте:

.icon-name{
color: #0C0;}

Например:

.icon-compass{
color: #C30;}

Вот и все.


3

Используйте mask-imageсвойство, но это немного взломать. Это продемонстрировано в блоге Safari здесь .

Это также подробно описано здесь .

По сути, вы должны создать блок CSS, скажем, background-image: gradient(foo);а затем применить к нему маску изображения на основе этих изображений PNG.

Это сэкономило бы вам время на разработку отдельных изображений в Photoshop, но я не думаю, что это сэкономило бы большую пропускную способность, если вы не будете отображать изображения в широком разнообразии цветов. Лично я бы не стал его использовать, потому что вам нужно настроить разметку, чтобы эффективно использовать эту технику, но я являюсь членом школы «чистота неперспективна».


1
Имейте в виду, что поддержка mask-imageсобственности не так уж велика .
Скотт Бартелл

1

Принятый ответ (с использованием отличного шрифта) является правильным. Но поскольку я просто хотел, чтобы красный вариант отображался при ошибках проверки, я прекратил использовать пакет дополнений, любезно предложенный на этом сайте .

Просто отредактировал пути URL в файлах CSS, так как они абсолютные (начинаются с /), и я предпочитаю быть относительными. Как это:

.icon-red {background-image: url("../img/glyphicons-halflings-red.png") !important;}
.icon-purple {background-image: url("../img/glyphicons-halflings-purple.png") !important;}
.icon-blue {background-image: url("../img/glyphicons-halflings-blue.png") !important;}
.icon-lightblue {background-image: url("../img/glyphicons-halflings-lightblue.png") !important;}
.icon-green {background-image: url("../img/glyphicons-halflings-green.png") !important;}
.icon-yellow {background-image: url("../img/glyphicons-halflings-yellow.png") !important;}
.icon-orange {background-image: url("../img/glyphicons-halflings-orange.png") !important;}

Наконец, тот, который совместим со старыми версиями Bootstrap
Дмитрий Гинзбург



0

Я думал, что мог бы добавить этот фрагмент к этому старому сообщению. Вот что я делал в прошлом, до того, как иконки были шрифтами:

<i class="social-icon linkedin small" style="border-radius:7.5px;height:15px;width:15px;background-color:white;></i>
<i class="social-icon facebook small" style="border-radius:7.5px;height:15px;width:15px;background-color:white;></i>

Это очень похоже на хитрый ответ @frbl, но оно не использует другое изображение. Вместо этого это устанавливает цвет фона <i>элемента whiteи использует свойство CSS, border-radiusчтобы сделать весь <i>элемент "округленным". Если вы заметили, значение border-radius(7.5px) ровно вдвое меньше, чем свойства widthand height(оба 15px, делающие значок квадратным), что делает <i>элемент круглым.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.