цвет navbar в Twitter Bootstrap

114

Как изменить цвет фона навигационной панели Twitter Bootstrap 2.0.2? Как изменить цвет всех элементов навигационной панели, чтобы отразить цвет фона?

  • 1
    Решаемые. Внесены изменения в bootstrap.css .navbar-inner {background-color: # 2c2c2c; поменял цвет фона, прокомментировал все остальное. Благодарю.
  • 12
    не рекомендуем изменять основную таблицу стилей CSS начальной загрузки просто потому, что при обновлении таблицы стилей все ваши изменения будут потеряны, поэтому просто включите все необходимые изменения в свою таблицу стилей.
Показать ещё 4 комментария
Теги:
colors
navbar

13 ответов

128
Лучший ответ

Вы можете перезаписать цвета бутстрапа, включая класс .navbar-inner, настроив его в своей собственной таблице стилей, а не на изменение таблицы стилей bootstrap.css, например:

.navbar-inner {
  background-color: #2c2c2c; /* fallback color, place your own */

  /* Gradients for modern browsers, replace as you see fit */
  background-image: -moz-linear-gradient(top, #333333, #222222);
  background-image: -ms-linear-gradient(top, #333333, #222222);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));
  background-image: -webkit-linear-gradient(top, #333333, #222222);
  background-image: -o-linear-gradient(top, #333333, #222222);
  background-image: linear-gradient(top, #333333, #222222);
  background-repeat: repeat-x;

  /* IE8-9 gradient filter */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
}

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

.navbar-inner {
  background-color: #000; /* background color will be black for all browsers */
  background-image: none;
  background-repeat: no-repeat;
  filter: none;
}

Вы можете воспользоваться такими инструментами, как Colorgilla Gradient Editor и создать свои собственные цвета градиента для всех браузеров и заменить оригинальные цвета на ваш самостоятельно.

И как я упомянул в комментариях, я бы не рекомендовал вам изменять таблицу стилей bootstrap.css напрямую, так как все ваши изменения будут потеряны после обновления таблицы стилей (текущая версия v2.0.2), поэтому рекомендуется включать все ваши изменения внутри вашей собственной таблицы стилей в сочетании с таблицей стилей загрузки bootstrap.css. Но не забудьте переписать все соответствующие свойства, чтобы они были согласованными в браузерах.

  • 2
    background-image: none; шесть раз?
  • 2
    @DamianNowak Воу, только что заметил, спасибо за совет: D окончательный пердеть мозг.
Показать ещё 1 комментарий
31

Отличный ресурс, чтобы посмотреть, как загружать тему: bootswatch.com. Он имеет хорошие примеры и показывает код. Короче говоря, они используют lessc для перекомпиляции bootstrap.css для вашего нового color-theme.css. Самое приятное в их подходе - это сборка поверх бутстрапа, поэтому при обновлении бутстрапа вы просто перекомпилируете.

Ссылки об использовании lessc и bootstrap:

  • 0
    Чудесные ресурсы Александра. Большое спасибо.
  • 1
    Спасибо за ссылку на загрузочные часы :)
6

Если у вас нет времени, чтобы узнать "меньше" или сделать это правильно, вот грязный хак...

Добавьте это выше, где вы визуализируете навигационную панель загрузки bootstrap - обновите цвета по мере необходимости.

<style type="text/css">   

.navbar-inner {
    background-color: red;
    background-image: linear-gradient(to bottom, blue, green);
    background-repeat: repeat-x;
    border: 1px solid yellow;
    border-radius: 4px 4px 4px 4px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);
    min-height: 40px;
    padding-left: 20px;
    padding-right: 20px;
}

.dropdown-menu {
    background-clip: padding-box;
    background-color: red;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 6px 6px 6px 6px;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    display: none;
    float: left;
    left: 0;
    list-style: none outside none;
    margin: 2px 0 0;
    min-width: 160px;
    padding: 5px 0;
    position: absolute;
    top: 100%;
    z-index: 1000;
}

.btn-group.open .btn.dropdown-toggle {
  background-color: red;
}

.btn-group.open .btn.dropdown-toggle {
  background-color:lime;
}

.navbar .nav li.dropdown.open > .dropdown-toggle,
.navbar .nav li.dropdown.active > .dropdown-toggle,
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
  color:white;
  background-color:Teal;
}

.navbar .nav > li > a {
    color: white;
    float: none;
    padding: 10px 15px;
    text-decoration: none;
    text-shadow: 0 0px 0 #ffffff;
}

.navbar .brand {
  display: block;
  float: left;
  padding: 10px 20px 10px;
  margin-left: -20px;
  font-size: 20px;
  font-weight: 200;
  color: white;
  text-shadow: 0 0px 0 #ffffff;
}

.navbar .nav > li > a:focus,
.navbar .nav > li > a:hover {
  color: white;
  text-decoration: none;
  background-color: transparent;
}

.navbar-text {
  margin-bottom: 0;
  line-height: 40px;
  color: white;
}

.dropdown-menu li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 20px;
  color: white;
  white-space: nowrap;
}

.navbar-link {
  color: white;
}

.navbar-link:hover {
  color: white;
}

</style>
4

Я использую Bootstrap версии 3.2.0, и похоже, что .navbar-inner больше не существует.

Решения здесь, которые предполагают, что переопределение .navbar-inner не работает для меня - цвет остался прежним.

Цвет изменился, только когда я переопределил .navbar, как показано ниже:

.navbar {
    background-color: #A4C8EC;
    background-image: none;
}
4

Вы можете загрузить пользовательскую версию bootstrap и установить @navbarBackground на нужный вам цвет.

http://twitter.github.com/bootstrap/customize.html

  • 0
    Благодарю. Я проверю.
3

Лучший способ в настоящее время сделать то же самое - установить компилятор командной строки LESS, используя

$ npm install -g less jshint recess uglify-js

Как только вы это сделаете, перейдите в папку меньшего размера в каталоге, а затем отредактируйте файл variables.less, и вы можете изменить множество переменных в соответствии с тем, что вам нужно, включая цвет панели навигации

@navbarCollapseWidth:             979px;

@navbarHeight:                    40px;
@navbarBackgroundHighlight:       #ffffff;
@navbarBackground:                darken(@navbarBackgroundHighlight, 5%);
@navbarBorder:                    darken(@navbarBackground, 12%);

@navbarText:                      #777;
@navbarLinkColor:                 #777;
@navbarLinkColorHover:            @grayDark;
@navbarLinkColorActive:           @gray;
@navbarLinkBackgroundHover:       transparent;
@navbarLinkBackgroundActive:      darken(@navbarBackground, 5%);

Как только вы это сделаете, перейдите в каталог загрузки и запустите команду make.

2

вот что я делаю

.navbar-inverse .navbar-inner {
  background-color: #E27403; /* it flat*/
 background-image: none;
}

.navbar-inverse .navbar-inner {
  background-image: -ms-linear-gradient(top, #E27403, #E49037);
  background-image: -webkit-linear-gradient(top, #E27403, #E49037);
  background-image: linear-gradient(to bottom, #E27403, #E49037);
}

он хорошо работает для всех навигаторов вы можете увидеть демо здесь http://caverne.fr вверху

2

Если вы используете LESS, вы можете использовать Mixins для меньшего количества кода. Здесь я добавлю градиент, границу и border-radius:

.navbar-inner {
  #gradient > .vertical(#ffffff, #ECECEC);
  border: #E2E2E2;
  .border-radius(6px);
}

* Если вы используете рельсы gem, twitter-bootstrap-rails, я делаю это непосредственно в файле bootstrap_and_overrides.css.less *

1

Если вы используете LESS или SASS версию Bootstrap. Наиболее эффективным способом является изменение имени переменной в файле LESS или SASS.

$navbar-default-color:              #FFFFFF !default;
$navbar-default-bg:                 #36669d !default;
$navbar-default-border:             $navbar-default-bg !default;

Это, безусловно, самый простой и эффективный способ изменения Navstar Bootstraps. Вам не нужно писать переопределения, и код остается чистым.

1

Разве occam бритва сказать просто сделать это, пока вам не нужно что-то более сложное? Это немного взломать, но может удовлетворить потребности кого-то, кто хочет быстро исправить.

.navbar-default .container-fluid{
    background-color:#62ADD7; // Change the color
    margin: -1px -1px 10px -1px; // Get rid of the border
}
1

В строке 4784 загрузки bootstrap.css мы видим:

.navbar-inverse .navbar-inner {
  background-color: #FFFFFFF;
  background-image: -moz-linear-gradient(top, #222222, #111111);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
  background-image: -webkit-linear-gradient(top, #222222, #111111);
  background-image: -o-linear-gradient(top, #222222, #111111);
  background-image: linear-gradient(to bottom, #222222, #111111);
  background-repeat: repeat-x;
  border-color: #252525;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
}

Вам нужно удалить все объявления свойств "background-image", чтобы получить желаемый эффект.

0

Я просто просто перезаписываю все, что хочу изменить на сайте site.css, вы должны загрузить site.css после загрузки, чтобы перезаписать классы. То, что я сделал сейчас, просто сделало мои собственные занятия моей собственной маленькой загрузочной темой. Маленькие вещи, подобные этому

.navbar-nav li a{
    color: #fff;
    font-size: 15px;
    margin-top: 9px;
}
.navbar-nav li a:hover{

    background-color: #18678E;
    height: 61px;
}

Я также изменил аналогичные ошибки валидации таким же образом.

0

Вы можете настроить свою собственную версию на официальном сайте Bootstrap.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню