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.