Twitter Bootstrap 3.0, як я зараз значу "значок-важливий"


218

У другій версії я міг би використовуватись

бейдж-важливий

Я бачу, що .badge елемент більше не має контекстуальних (-success, -primary тощо) класів.

Як я можу досягти того самого, що і у версії 3?

Напр. Я хочу попереджувати знаки та важливі значки у своєму інтерфейсі


1
Вони повинні передбачити .dangerі .successт.д. визначення стилів класу з поля для загальних випадків використання.
Fr0zenFyr

Відповіді:


256

Просто додайте цей однорядковий клас у свій CSS та використовуйте labelкомпонент завантаження .

.label-as-badge {
    border-radius: 1em;
}

Порівняйте це labelта badgeпобічно:

<span class="label label-default label-as-badge">hello</span>
<span class="badge">world</span>

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

Вони видаються однаковими. Але в CSS labelвикористовує emтак, що він гарно масштабує, і в ньому все ще є "-кольорові" класи. Таким чином мітка краще масштабуватиметься до великих розмірів шрифту, а також їх можна пофарбувати за допомогою успішності етикетки, попередження про мітки тощо. Ось два приклади:

<span class="label label-success label-as-badge">Yay! Rah!</span>

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

Або де більше:

<div style="font-size: 36px"><!-- pretend an enclosing class has big font size -->
    <span class="label label-success label-as-badge">Yay! Rah!</span>
</div>

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


16.11.2015 : Подивившись, як це робити в Bootstrap 4

Схоже, .badgeзаняття повністю пройшли. Але є вбудований .label-pillклас (тут), який схожий на те, що ми хочемо.

.label-pill {
  padding-right: .6em;
  padding-left: .6em;
  border-radius: 10rem;
}

У використанні це виглядає приблизно так:

<span class="label label-pill label-default">Default</span>
<span class="label label-pill label-primary">Primary</span>
<span class="label label-pill label-success">Success</span>
<span class="label label-pill label-info">Info</span>
<span class="label label-pill label-warning">Warning</span>
<span class="label label-pill label-danger">Danger</span>

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


11.04.2014 : Ось оновлення того, чому перехресне запилення класів оповіщення .badgeне настільки велике. Я думаю, що ця картина підсумовує це:

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

Ці класи попередження не були розроблені для ознайомлення зі значками. Це надає їм "натяк" на передбачувані кольори, але врешті-решт консистенція викидається у вікно, і читабельність сумнівна. Ці знаки, які мають зловживання, не є візуально згуртованими.

.label-as-badgeРішення розширює тільки конструкцію початкового завантаження. Ми зберігаємо недоторканими всі рішення, прийняті дизайнерами завантажувальних програм, а саме врахування, яке вони приділяли читабельності та згуртованості у всіх можливих кольорах, а також самій вибір кольорів. .label-as-badgeКлас тільки додає закруглені кути, і більше нічого. Не введено жодних визначень кольорів. Таким чином, єдиний рядок CSS.

Так, це найлегше поредактірует і падіння в цих .alert-xxxxxкласах - ви не повинні додати будь-які рядки CSS. Або ви могли б подбати про дрібниці та додати один рядок.


3
це круто, доки ви не хочете використовувати значки в групових списках, тоді вони не плавають ... я можу побачити це гальмування з часом, коли зміниться завантажувальна програма. приємний хак, хоча.
nodrog

2
Так, гарна точка @nodrog. list-groupЗ badgesхорошим поза коробки особливості в засобі завантаження. Для тих, хто спостерігає, ось як це виглядає: getbootstrap.com/components/#list-group-badges
broc.seib

1
Мене не бентежить аргумент "перехресного запилення". Повторне використання та рекомбінація класів / атрибутів CSS відбувається постійно. Прихований аргумент за вашим терміном може полягати в тому, що ви віддаєте перевагу семантичним іменам класу css та підкласу. Це в основному "гнучкість / повторне використання та семантична коректність". Ім'я семантичного класу повинно підтримувати роль елемента. "label-as-badge" вказує на перетворення елементів. - Sidenote: Відповідь, в основному, мій коментар від 22 вересня з вирішенням проблеми "не такі круглі краї на мітках", додавши рядок css.
Єнс А. Кох

3
Якщо ви хочете отримати спеціальну плаваючу групу списку, просто додайте це! .list-group-item > .label-as-badge { float: right; } .list-group-item > .label-as-badge + .label-as-badge { margin-right: 5px; }
Gausie

2
Відмінна відповідь. Ви також можете закинути туди накладку, щоб відповідати .badge таким чином:.label-as-badge { border-radius: 1em; padding: 3px 7px; }
Метт Борджа

254

Якщо коротко: замініть badge-importantна alert-dangerабо progress-bar-danger.

Це виглядає приблизно так: демонстрація завантаження .


Ви можете комбінувати клас CSS badgeз alert-*або progess-bar-*розфарбувати їх:

З class="badges alert-*"

  <span class="badge alert-info">badge</span> Info
  <span class="badge alert-success">badge</span> Success 
  <span class="badge alert-danger">badge</span> Danger   
  <span class="badge alert-warning">badge</span> Warning

Попередження Docu: http://getbootstrap.com/components/#alerts

З class="badges progress-bar-*"(за пропозицією @ clami219)

  <span class="badge progress-bar-info">badge</span> Info
  <span class="badge progress-bar-success">badge</span> Success
  <span class="badge progress-bar-danger">badge</span> Danger
  <span class="badge progress-bar-warning">badge</span> Warning

Прогрес-бар Docu: http://getbootstrap.com/components/#progress-alternatives


4
Мені не сподобалося, як сповіщення прикрашало значки, тому я вирішив замість цього використовувати мітки. getbootstrap.com/components/#labels
Майк Перселл

6
Це трохи відповідь на злом. Звичайно, це працює, і це просто. Але ви повинні використовувати ці контекстні класи оповіщення з попередженнями. У майбутньому ви можете підписуватись на розбиті стилі. @ Відповідь Джейсона Хуана настільки ж проста і дає вам більший контроль.
mikesigs

2
Що спонукало мене зробити вищезгадану відповідь, це те, що Visual Studio Web Essentials показує попередження для наведеного вище коду. А саме: "Використовуючи" сигнал-небезпека ", ви також повинні вказати клас" сигнал "."
mikesigs

3
Люди приземляються на цій сторінці, тому що люди завантажувача завантажували багато дизайнерських міркувань, які викидають дизайнерські міркування, які вони робили раніше :) - Я просто рекомбінував існуючі класи css, щоб наблизитись до колишнього "важливого значка" . Тут ми йдемо з речами, які вони дають використовувати з коробки: це все. Я не думаю, що існує один вірний спосіб розробити CSS. Ця сторінка пропонує безліч способів вирішити проблему. Але будь ласка, перестаньте кричати "Ааа! Ні! Це не так! Ви робите щось не так".
Єнс А. Кох

1
@ Jens-AndréKoch ти маєш рацію щодо мого "Аааа !! Ні !!". Це робить звук , як я кажу людям «що ви робите це неправильно», і у мене немає місця , щоб сказати , що. Вибачте.
broc.seib

45

Bootstrap 3 видалив ці варіанти кольорів для значків. Однак ми можемо додати ці стилі вручну. Ось моє рішення, і ось JS Bin :

.badge {
  padding: 1px 9px 2px;
  font-size: 12.025px;
  font-weight: bold;
  white-space: nowrap;
  color: #ffffff;
  background-color: #999999;
  -webkit-border-radius: 9px;
  -moz-border-radius: 9px;
  border-radius: 9px;
}
.badge:hover {
  color: #ffffff;
  text-decoration: none;
  cursor: pointer;
}
.badge-error {
  background-color: #b94a48;
}
.badge-error:hover {
  background-color: #953b39;
}
.badge-warning {
  background-color: #f89406;
}
.badge-warning:hover {
  background-color: #c67605;
}
.badge-success {
  background-color: #468847;
}
.badge-success:hover {
  background-color: #356635;
}
.badge-info {
  background-color: #3a87ad;
}
.badge-info:hover {
  background-color: #2d6987;
}
.badge-inverse {
  background-color: #333333;
}
.badge-inverse:hover {
  background-color: #1a1a1a;
}

25

Класи контексту для badgeдійсно видаляються з Bootstrap 3, тому вам доведеться додати кілька спеціальних CSS, щоб створити такий же ефект, як ...

.badge-important{background-color:#b94a48;}

Завантажувальна


20
Чому їх позбулися?
Пітер

4
+! Мені теж цікаво, чому вони їх позбулися. Ви можете використовувати етикетку, але вона не вибудовується належним чином на контейнері для таблеток. Принаймні, це не по центру вертикально.
cbmeeks

2
кульгавий. міграція вгору від 2 до 3 - це повний біль.
Кевін

Відповідь Єнса-Андре Коха - це рішення, яке стосується лише Bootstrap 3.0. Я думаю, що це правильний шлях?
Джош Петтіт

2
@Peter: Див. Github.com/twbs/bootstrap/pull/6342 . TLDR: значки призначені для використання як "непрочитані" лічильники, і не повинні використовуватися для передачі інших статусів.
Боббі Джек

20

Ще один можливий спосіб зробити кольори трохи інтенсивнішими - це такий:

<span class="badge progress-bar-info">10</span>
<span class="badge progress-bar-success">20</span>
<span class="badge progress-bar-warning">30</span>
<span class="badge progress-bar-danger">40</span>

Див. Bootply


18

Якщо ви використовуєте версію SASS (наприклад, версію thomas-mcdonald ), можливо, ви хочете бути трохи більш динамічними (шануйте існуючі змінні) та створювати всі контексти значків, використовуючи ту саму техніку, що і для міток:

// Colors
// Contextual variations of badges
// Bootstrap 3.0 removed contexts for badges, we re-introduce them, based on what is done for labels
.badge-default {
  @include label-variant($label-default-bg);
}

.badge-primary {
  @include label-variant($label-primary-bg);
}

.badge-success {
  @include label-variant($label-success-bg);
}

.badge-info {
  @include label-variant($label-info-bg);
}

.badge-warning {
  @include label-variant($label-warning-bg);
}

.badge-danger {
  @include label-variant($label-danger-bg);
}

Менший еквівалент повинен бути простим.


5

Як відповідь вище, але тут використовується завантажувальний 3 назви та кольори:

/*css to add back colours for badges and make use of the colours*/
.badge-default {
  background-color: #999999;
}

.badge-primary {
  background-color: #428bca;
}

.badge-success {
  background-color: #5cb85c;
}

.badge-info {
  background-color: #5bc0de;
}

.badge-warning {
  background-color: #f0ad4e;
}

.badge-danger {
  background-color: #d9534f;
}


2

Під час використання меншої версії ви можете імпортувати mixins.less та створювати власні класи для кольорових значків:

.badge-warning {
    .label-variant(@label-warning-bg);
}

Те саме для інших кольорів; просто замініть попередження небезпекою, успіхом тощо.


2

Ну, це страшенно пізня відповідь, але я думаю, я все-таки покладу свої два центи ... Я міг би опублікувати це як коментар, оскільки ця відповідь по суті не додає жодного нового рішення, але це додає значення публікації як ще одна альтернатива. Але в коментарі я не зміг би дати всі деталі через обмеження кількості персонажів.

ПРИМІТКА. Для цього потрібно редагувати CSS-файл для завантаження - визначення переміщення стилю .badgeвище .label-default. Не вдалося знайти жодних практичних побічних ефектів через зміну мого обмеженого тестування.

Хоча рішення broc.seib - це, мабуть, найкращий спосіб досягти вимоги OP з мінімальним доповненням до CSS, можна досягти такого ж ефекту без зайвих CSS, як і рішення Йенса А. Коха, або використовуючи .label-xxxконтекстні класи, оскільки вони легко запам'ятовується порівняно з progress-bar-xxxкласами. Я не думаю, що .alert-xxxзаняття дають однаковий ефект.

Все, що вам потрібно зробити, - це просто використовувати .badgeта .label-xxxразом проводити заняття (але в цьому порядку). Не забудьте внести зміни, зазначені в ПРИМІТКі вище.

<a href="#">Inbox <span class="badge label-warning">42</span></a> виглядає так:

Знак з попередженням bg

ВАЖЛИВО: Це рішення може порушити ваші стилі, якщо ви вирішите оновити та забути внести зміни у свій новий локальний файл CSS. Моє рішення для цього завдання було скопіювати всі .label-xxxстилі в мій користувацький файл CSS та завантажити його після всіх інших файлів CSS. Цей підхід також допомагає, коли я використовую CDN для завантаження BS3.

** PS: ** Обидва найкращі відповіді мають свої плюси і мінуси. Це просто так, як ви вважаєте за краще робити свій CSS, тому що немає "єдиного правильного способу" для цього.


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