Чи можу я додати колір до піктограм завантажувача лише за допомогою CSS?


159

У завантажувальній мережі Twitter використовуються значки Glyphicons . available in dark gray and whiteЗа замовчуванням вони " ":

Зображення-58.png

Чи можна використовувати якусь хитрість CSS, щоб змінити кольори піктограм? Я сподівався на якийсь інший блиск css3, який би перешкоджав встановленню зображення значка для кожного кольору.

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

Отже, чи можу я додати колір до піктограм завантажувача лише за допомогою CSS?


Я не думаю, що так ... Але ви, мабуть, могли це зробити за допомогою JavaScript та елемента "canvas".
— bfavaretto

@bfavaretto - чи можете ви докладно? ти маєш на увазі придумати код / ​​координати, щоб намалювати кожну з піктограм або якось використовувати наявне png-зображення?
— cwd

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

Відповіді:


189

Так, якщо ви використовуєте Font Awesome з Bootstrap! Піктограми трохи відрізняються, але їх більше, вони чудово виглядають у будь-яких розмірах, і ви можете змінювати їх кольори.

В основному піктограми є шрифтами, і ви можете змінити їх колір лише за допомогою властивості кольору CSS. Інструкції щодо інтеграції знаходяться внизу сторінки в наданому посиланні.


Редагувати: піктограми 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
— Дай,

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


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

У ваших змінних.не знайдіть

// 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
— зазначити

Неможливо зробити це лише через 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-попереджувальна мітка"> <i class = "icon- <iconname> icon-white"> </i> </span>. Наприклад: <span class = "label-попереджувальна мітка"> <i class = "icon-edit icon-white"> </i> </span>. Краще піти на нову завантажувальну систему imo ..
— пт

6

Гліфікони Bootstrap - це шрифти. Це означає, що його можна змінити, як і будь-який інший текст, за допомогою стилів 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

Також працює з тегом стилю:

<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, скажіть a, background-image: gradient(foo);а потім застосуйте до нього маску зображення на основі цих зображень PNG.

Це дозволить заощадити час на розробці окремих зображень у Photoshop, але я не думаю, що це дозволить заощадити велику пропускну здатність, якщо ви не відображатимете зображення в найрізноманітніших кольорах. Особисто я б не використовував це, тому що вам потрібно скорегувати свою розмітку, щоб ефективно використовувати техніку, але я є членом школи «думка про непомірність».


1
Майте на увазі, що підтримка mask-imageмайна не настільки велика .
— Скотт Бартелл

1

Прийнята відповідь (використовуючи дивовижний шрифт) є правильною. Але оскільки я просто хотів, щоб червоний варіант відображався на помилках перевірки, я закінчив використовувати пакет Addon, люб’язно запропонований на цьому сайті .

Щойно відредаговані 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,5 пікселів) рівно наполовину значення властивості widthта heightвластивості (обидва 15 пікселів, що робить значок квадратним), що робить <i>елемент круговим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.