Як змінити колір btn в Bootstrap


83

Чи є спосіб змінити всі .btnвластивості в Bootstrap? Я пробував наведені нижче, але все ж іноді він відображає синій колір за замовчуванням (скажімо, після натискання та видалення миші тощо). Як я можу змінити всю тему взагалі?

.btn-primary, .btn-primary:hover, .btn-primary:active, .btn-primary:visited {
    background-color: #8064A2;
}

Ви можете просто створити override_default.css і включити його безпосередньо в наступному рядку до завантажувальної бібліотеки css, і тоді ви можете замінити що завгодно.
art-fan-vikram

Відповіді:


31

Найпростіший спосіб дізнатись, які властивості потрібно замінити, - це поглянути на вихідний код Bootstrap , зокрема на .button-variantміксин, визначений у mixins / buttons.less . Вам все одно потрібно замінити досить багато властивостей, щоб позбутися від усього .btn-primaryстилю (наприклад :focus,disabled , використання в випадають і т.д.).

Кращим способом може бути:

  1. Створіть власну індивідуальну версію Bootstrap, використовуючи інструмент онлайн-налаштування Bootstrap
  2. Вручну створіть свій власний клас кольорів, наприклад .btn-whatever
  3. Використовуйте компілятор LESS і використовуйте .button-variantmixin для створення власного класу кольорів, наприклад.btn-whatever

Я теж вважаю, що створення спеціальної версії Bootstrap має бути ідеальним способом зробити це, оскільки тут може бути багато властивостей, які потрібно змінити. Дякую.
Сем

на кроці 3 - я намагаюся створити МЕНШЕ міксину при використанні .btn-primary, але: hover не працює. Як слід змішувати стан наведення?
Євген Афанасьєв

80

Якщо ви хочете замінити будь-які властивості за замовчуванням у bootstrap, вам слід зробити властивості такими важливими.

.btn-primary, .btn-primary:hover, .btn-primary:active, .btn-primary:visited {
    background-color: #8064A2 !important;
}

Я сподіваюся, ця воля буде працювати для вас.


10
Це !importantбуло ключем!
cdonts

7
Це не найкращий спосіб змінити Bootstrap, зміни слід вносити за допомогою змінних Less або Sass при створенні власного CSS Bootstrap.
Тім

Якщо ви просто зробите посилання на bootstrap перед тим, як зробити посилання на спеціальну таблицю стилів, тоді ваша спеціальна таблиця стилів матиме перевагу.
dillon. Безтурботний

42

Оновлення 2019 для Bootstrap 4

Тепер, коли Bootstrap 4 використовує SASS, ви можете легко змінити основний колір кнопки, використовуючи button-variantкомбінації:

$mynewcolor:#77cccc;

.btn-primary {
    @include button-variant($mynewcolor, darken($mynewcolor, 7.5%), darken($mynewcolor, 10%), lighten($mynewcolor,5%), lighten($mynewcolor, 10%), darken($mynewcolor,30%));
}
    
.btn-outline-primary {
    @include button-outline-variant($mynewcolor, #222222, lighten($mynewcolor,5%), $mynewcolor);
}

https://codeply.com/go/2bHYxYSC0n ( демонстрація SASS )

Цей SASS компілюється в наступний CSS ...

.btn-primary {
    color: #212529;
    background-color: #7cc;
    border-color: #5bc2c2
}

.btn-primary:hover {
    color: #212529;
    background-color: #52bebe;
    border-color: #8ad3d3
}

.btn-primary:focus,
.btn-primary.focus {
    box-shadow: 0 0 0 .2rem rgba(91, 194, 194, 0.5)
}

.btn-primary.disabled,
.btn-primary:disabled {
    color: #212529;
    background-color: #7cc;
    border-color: #5bc2c2
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show>.btn-primary.dropdown-toggle {
    color: #212529;
    background-color: #9cdada;
    border-color: #2e7c7c
}

.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show>.btn-primary.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem rgba(91, 194, 194, 0.5)
}

.btn-outline-primary {
    color: #7cc;
    background-color: transparent;
    background-image: none;
    border-color: #7cc
}

.btn-outline-primary:hover {
    color: #222;
    background-color: #8ad3d3;
    border-color: #7cc
}

.btn-outline-primary:focus,
.btn-outline-primary.focus {
    box-shadow: 0 0 0 .2rem rgba(119, 204, 204, 0.5)
}

.btn-outline-primary.disabled,
.btn-outline-primary:disabled {
    color: #7cc;
    background-color: transparent
}

.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show>.btn-outline-primary.dropdown-toggle {
    color: #212529;
    background-color: #8ad3d3;
    border-color: #7cc
}

.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.show>.btn-outline-primary.dropdown-toggle:focus {
    box-shadow: 0 0 0 .2rem rgba(119, 204, 204, 0.5)
}

https://codeply.com/go/lD3tUE01lo ( демонстрація CSS )


Щоб змінити основний колір для всіх класів, див .: Налаштування шаблону CSS Bootstrap та Як змінити основний колір bootstrap?


Ця публікація допомогла мені створити фіолетову кнопку, як це видно на домашній сторінці Bootstrap.
priyamtheone

А для таких повільних, як я, зауважте, що вам потрібно зробити заміну ПІСЛЯ імпорту самого завантажувального репліка, оскільки цей імпорт містить матеріали, які ви збираєтеся включити.
philw

34

Я думаю, ви забули .btn-primary:focusвластивість та кому після .btn-primary

того, як Ви також можете використовувати менше і перевизначити деякі кольори у файлі variables.less.

З огляду на це, ваш код буде виглядати так:

.btn-primary,
.btn-primary:hover,
.btn-primary:active,
.btn-primary:visited,
.btn-primary:focus {
    background-color: #8064A2;
    border-color: #8064A2;
}


Потім є колір межі, який все ще залишається синім. Думаю, для цього потрібно менше, чи не так?
Сем

Ви також можете перевизначити межу.
Семен Жихарев

Мені також довелося змінити фонове зображення, перш ніж воно змінило колір: background-image: -webkit-linear-gradient(top,#8064A2 0,#8064A2 100%);або background-image: none;.
SharpC


6

Ви пропустили один стиль ".btn-primary: active: focus", що призводить до того, що під час натискання кнопки btn колір завантаження за замовчуванням відображається на секунду. Це працює в моєму коді:

.btn-primary, .btn-primary:hover, .btn-primary:active, .btn-primary:visited, .btn-primary:focus, .btn-primary:active:focus {
background-color: #8064A2;}

Ви бачили проблему, якої не мали інші, але це не вирішує мене.
Steve Lautenschlager

4

Видаліть клас кольору кнопки типу "btn-success" і поставте власний клас типу "btn-custom" та напишіть css для цього класу. Це просто працює для мене.

HTML :

<button class="btn btn-block login " type="submit">Sign In</button>

CSS:

 .login  {
    background-color: #0057fc;
    color: white;   
}

4

Найпростіший спосіб полягає в наступному :

1) перехоплення кожного стану кнопки

2) додати, !importantщоб замінити штати

.btn-primary,
.btn-primary:hover,
.btn-primary:active,
.btn-primary:visited,
.btn-primary:focus {
  background-color: black !important;
  border-color: black !important;
}

Більш практичний спосіб інтерфейсу - зробити стан наведення кнопки темнішим за початковий стан:

.btn-primary {
  background-color: Blue !important;
  border-color: Blue !important;
}
.btn-primary:hover,
.btn-primary:active,
.btn-primary:visited,
.btn-primary:focus {
  background-color: DarkBlue !important;
  border-color: DarkBlue !important;
}

3

Ось мій смак без втрати наведення. Мені особисто це подобається краще, ніж стандартний перехідний завантажувальний файл.

.btn-primary,
.btn-primary:active,
.btn-primary:visited {
  background-color: #8064A2 !important;
}

.btn-primary:hover {
  background-color: #594671 !important;
  transition: all 1s ease;
  -webkit-transition: all 1s ease;
  -moz-transition: all 1s ease;
  -o-transition: all 1s ease;
  -ms-transition: all 1s ease;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet" />
<button class="btn btn-primary">Hover me!</button>


1

Нещодавно я стикався з подібною проблемою і встиг її виправити, додавши класи

  body .btn-primary {
    background-color: #7bc143;
    border-color: #7bc143;
    color: #FFF; }
    body .btn-primary:hover, body .btn-primary:focus {
      border-color: #6fb03a;
      background-color: #6fb03a;
      color: #FFF; }
    body .btn-primary:active, body .btn-primary:visited, body .btn-primary:active:focus, body .btn-primary:active:hover {
      border-color: #639d34;
      background-color: #639d34;
      color: #FFF; }

Також зверніть увагу на [disabled] та [disabled]: наведення, якщо цей клас використовується на введенні [type = submit]. Подобається це:

body .btn-primary[disabled], body .btn-primary[disabled]:hover {
  background-color: #7bc143;
  border-color: #7bc143; }

0

Я думаю, що використання !important- не дуже мудрий варіант. Це може спричинити багато інших проблем, особливо коли сайт відповідає. Отже, наскільки я розумію, найкращий спосіб це зробити, використовуючи спеціальний клас CSS-класу з .btnкласом bootstrap. .btnє базовим класом стилю для кнопки завантаження. Отже, пам’ятайте, що як макет ми можемо змінювати інші стилі, використовуючи наш власний клас css. Ще одне зайве, що я хочу тут згадати. Деякі люди намагаються видалити синій контур з кнопок. Це не гарна ідея, оскільки ця проблема доступності при використанні клавіатури. Змініть його колір, використовуючи outline-color:замість цього.


0

Додавання покрокового керівництва до відповіді @ Codeply-er вище для початківців SASS / SCSS, таких як я.

  1. Зберегти btnCustom.scss.
/* import the necessary Bootstrap files */
@import 'bootstrap';

/* Define color */
$mynewcolor:#77cccc;

.btn-custom {
    @include button-variant($mynewcolor, darken($mynewcolor, 7.5%), darken($mynewcolor, 10%), lighten($mynewcolor,5%), lighten($mynewcolor, 10%), darken($mynewcolor,30%));
}

.btn-outline-custom {
    @include button-outline-variant($mynewcolor, #222222, lighten($mynewcolor,5%), $mynewcolor);
}
  1. Завантажте компілятор SASS, такий як Koala, щоб наведений вище файл SCSS можна було скомпілювати в CSS.
  2. Клонування Bootstrap GitHub репо , тому що компілятор потребує ґудзиках варіантні Домішки де - то.
  3. Явно імпортуйте функції завантаження, створюючи _bootstrap.scssфайл, як показано нижче. Це дозволить компілятору отримати доступ до функцій і змінних Bootstrap.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/root";
@import "bootstrap/scss/reboot";
@import "bootstrap/scss/type";
@import "bootstrap/scss/images";
@import "bootstrap/scss/grid";
@import "bootstrap/scss/tables";
@import "bootstrap/scss/forms";
@import "bootstrap/scss/buttons";
@import "bootstrap/scss/utilities";
  1. Скомпілюйте btnCustom.scssз раніше завантаженим компілятором у css.

0

Я не відповідаю за цю відповідь, але мені це допомогло:

Я хотів змінити колір наступної / попередньої кнопок каруселі початкового завантаження на домашній сторінці.

Рішення: Скопіюйте імена селекторів із bootstrap.css та перемістіть їх у свій власний style.css (із власними преференціями ..):

.carousel-control-prev-icon,
.carousel-control-next-icon {
  height: 100px;
  width: 100px;
  outline: black;
  background-size: 100%, 100%;
  border-radius: 50%;
  border: 1px solid black;
  background-image: none;
}

.carousel-control-next-icon:after
{
  content: '>';
  font-size: 55px;
  color: red;
}

.carousel-control-prev-icon:after {
  content: '<';
  font-size: 55px;
  color: red;
}


0

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

$theme-colors: (
    "whatever": #900
);

Тепер ви можете це зробити .btn-whatever

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