Изменить цвет панели значков (☰) в начальной загрузке

Я хочу изменить ☰ цвет.

HTML:

<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#menu">
  <span class="sr-only">Toggle menu navigation</span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
</button>

Я пробовал разные вещи (смотрите ниже), но ничего не работает.

CSS:

.icon-bar {
  color: black;
  border-color: black;
  background-color: black;
}

person a1204773    schedule 12.12.2013    source источник
comment
какую версию Bootstrap вы используете? stackoverflow.com/questions/12379153/   -  person Gotschi    schedule 12.12.2013
comment
@Gotschi последний   -  person a1204773    schedule 12.12.2013
comment
Переопределить цвет с помощью !important   -  person Ranveer    schedule 12.12.2013


Ответы (7)


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

Bootstrap оформляет это с помощью селектора: .navbar-default .navbar-toggle .icon-bar. У этого селектора значение специфичности B равно 3, тогда как у вашего селектора значение специфичности B равно 1.

Поэтому, чтобы переопределить это, просто используйте тот же селектор в вашем CSS (при условии, что ваш CSS включен после Bootstrap):

.navbar-default .navbar-toggle .icon-bar {
    background-color: black;
}
person James Donnelly    schedule 12.12.2013
comment
@JaydenLawson Я отменил ваше редактирование. В последнее время определение специфичности было немного переработано, чтобы удалить десятичные конкатенированные значения. Класс CSS имеет значение специфичности B, равное 1. Когда значения A, B и c объединены, по-видимому, имеет специфичность 010, да, но что произойдет, если классов больше 10 (или 16, если вы хотите использовать здесь шестнадцатеричный формат)? Специфичность не станет внезапно равной 100, тогда она будет равна 0100, но как составное значение, которое трудно прочитать, и на самом деле оно должно быть представлено как 0,10,0. - person James Donnelly; 25.05.2016
comment
Не беспокойся @Джеймс. По крайней мере, орфография правильная :) - person Jayden Lawson; 25.05.2016
comment
Объяснение @JamesDonnelly очень полезно, действительно, вы учите меня, почему это не сработало, большое спасибо, сэр :) - person Mohammed Sufian; 13.08.2016

Попробуйте переопределить CSS с помощью !important

так

.icon-bar {
   background-color:#FF0000 !important;
}
person Prasanth K C    schedule 12.12.2013
comment
Использовать !important вообще плохая идея, а для этого и вовсе ненужная. - person James Donnelly; 12.12.2013
comment
Вы так говорите, но без важного это не работает? - person Alan Simes; 18.11.2014
comment
@AlanSimes ответ, который я дал на этот вопрос, не использует !important, и он был принят и одобрен более 15 раз. - person James Donnelly; 04.02.2015
comment
Добавьте его в свою структуру и переопределит файл .css, и он будет работать без !important. Суть в том, что его необходимо объявить после первоначального объявления, чтобы он вступил в силу. - person heading_to_tahiti; 04.08.2015
comment
Это сработает, хотя и не следует. Кроме того, если оно используется, они всегда могут переопределить его в будущем, используя более конкретное правило !important или еще лучше - сделать это встроенным!! :D (последний сарказм) - person Radmation; 22.11.2016

Достаточно одной строчки кода... просто попробуйте. и вы можете настроить даже толщину панели значков, добавив пиксели.

HTML

<div class="navbar-header">
  <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#defaultNavbar1" aria-expanded="false"><span class="sr-only">Toggle navigation</span>

  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>

  </button>
  <a class="navbar-brand" href="#" <span class="icon-bar"></span><img class="img-responsive brand" src="img/brand.png">
  </a></div>

CSS

    .navbar-toggle, .icon-bar {
    border:1px solid orange;
}

БУМ...

person Midun    schedule 27.08.2016

Чувак, я полностью понимаю, что ты чувствуешь, но не забывай о встроенных стилях. Это почти супер сайян специфики CSS

Так что это должно выглядеть примерно так для вас,

<span class="icon-bar" style="background-color: black !important;">
</span>
<span class="icon-bar" style="background-color: black !important;">
</span>
<span class="icon-bar" style="background-color: black !important;">
</span>
person Wong Seng Wee    schedule 27.06.2017

Я не знаю, ищете ли вы все еще ответ на эту проблему, но сегодня у меня возникла та же проблема, и я решил ее. Вам необходимо указать в HTML-коде,

**<Div class = "navbar"**>
         div class = "container">
               <Div class = "navbar-header">

or

**<Div class = "navbar navbar-default">**
        div class = "container">
               <Div class = "navbar-header">

У вас есть это место в вашем CSS

.navbar-default-toggle .navbar .icon-bar {
  background-color: # 0000ff;
}

и то, что я сделал, было добавлено выше

.navbar .navbar-toggle .icon-bar {
  background-color: # ff0000;
}

Поскольку мой html-код

**<Div class = "navbar">**
         div class = "container">
               <Div class = "navbar-header">

а если связать файл меньше /css

выполните поиск в этом разделе, а также здесь поместите цвет, который вы хотите изменить, иначе он самостоятельно исправит файл css до состояния, которое было раньше

// Toggle Navbar
@ Navbar-default-toggle-hover-bg: #ddd;
**@ Navbar-default-toggle-icon-bar-bg: # 888;**
@ Navbar-default-toggle-border-color: #ddd;

если ваш html-код похож на мой и не является навигационной панелью по умолчанию, добавьте его, как вы сделали с css.

// Toggle Navbar
@ Navbar-default-toggle-hover-bg: #ddd;
**@ Navbar-toggle-icon-bar-bg : #888;**
@ Navbar-default-toggle-icon-bar-bg: # 888;
@ Navbar-default-toggle-border-color: #ddd;

удачи

person jesusratti    schedule 19.05.2015

Я использую Bootstrap и HTML5. Я хотел переопределить внешний вид кнопки переключения.

.navbar-toggle{
    background-color: #5DADB0;
    color: #F3DBAA;
    border:none;        
}

.navbar-toggle.but-menu:link {
    color: #F00;
    background-color: #CF995F;
}

.navbar-toggle.but-menu:visited {
    color: #FFF;
    background-color: #CF995F;
}
.navbar-toggle.but-menu:hover {
    color: #FFF0C9;
    background-color: #CF995F;
}
.navbar-toggle.but-menu:active {
    color: #FFF;
    background-color: #CF995F;
}
.navbar-toggle.but-menu:focus {
    color: #FFF;
    background-color: #CF995F;
}
person Sylviamc    schedule 29.04.2017

В bootstrap 4.3.1 я могу изменить цвет фона значка переключателя на белый с помощью кода CSS.

.navbar-toggler{
  background-color:white;
  }

И, на мой взгляд, измененная иконка отлично смотрится как на светлом, так и на темном фоне.

person feli_x    schedule 22.06.2020