在Twitter Bootstrap中改变导航条的颜色

我如何去修改CSS来改变Twitter Bootstrap中导航条的颜色?

解决办法

tl;dr - TWBSColor - 生成你自己的Bootstrap导航条

版本说明:

  • 在线工具。Bootstrap 3.3.2+ / 4.0.0+。
  • 本答案。Bootstrap 3.0.x

可用的导航条

你有两个基本的导航栏。




默认的颜色使用

以下是主要的颜色和它们的用法。

  • #F8F8F8: 导航栏背景
  • #E7E7E7: 导航栏边框
  • #777:默认颜色
  • #333:悬停颜色(#5E5E5E用于.nav-brand)。
  • #555:活动颜色
  • #D5D5D5: 活动背景

默认风格

如果你想放一些自定义样式,这里是你需要改变的CSS。

/* navbar */
.navbar-default {
    background-color: #F8F8F8;
    border-color: #E7E7E7;
}
/* Title */
.navbar-default .navbar-brand {
    color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
    color: #5E5E5E;
}
/* Link */
.navbar-default .navbar-nav > li > a {
    color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
    color: #333;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
    color: #555;
    background-color: #E7E7E7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
    color: #555;
    background-color: #D5D5D5;
}
/* Caret */
.navbar-default .navbar-nav > .dropdown > a .caret {
    border-top-color: #777;
    border-bottom-color: #777;
}
.navbar-default .navbar-nav > .dropdown > a:hover .caret,
.navbar-default .navbar-nav > .dropdown > a:focus .caret {
    border-top-color: #333;
    border-bottom-color: #333;
}
.navbar-default .navbar-nav > .open > a .caret,
.navbar-default .navbar-nav > .open > a:hover .caret,
.navbar-default .navbar-nav > .open > a:focus .caret {
    border-top-color: #555;
    border-bottom-color: #555;
}
/* Mobile version */
.navbar-default .navbar-toggle {
    border-color: #DDD;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
    background-color: #DDD;
}
.navbar-default .navbar-toggle .icon-bar {
    background-color: #CCC;
}
@media (max-width: 767px) {
    .navbar-default .navbar-nav .open .dropdown-menu > li > a {
        color: #777;
    }
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
          color: #333;
    }
}

自定义彩色导航条的例子

下面是四个自定义彩色导航条的例子。

[JSFiddle链接][2]

还有SCSS代码。

$bgDefault   : #e74c3c;
$bgHighlight : #c0392b;
$colDefault  : #ecf0f1;
$colHighlight: #ffbbbc;
.navbar-default {
  background-color: $bgDefault;
  border-color: $bgHighlight;
  .navbar-brand {
    color: $colDefault;
    &:hover, &:focus {
      color: $colHighlight; }}
  .navbar-text {
    color: $colDefault; }
  .navbar-nav {
    > li {
      > a {
        color: $colDefault;
        &:hover,  &:focus {
          color: $colHighlight; }}}
    > .active {
      > a, > a:hover, > a:focus {
        color: $colHighlight;
        background-color: $bgHighlight; }}
    > .open {
      > a, > a:hover, > a:focus {
        color: $colHighlight;
        background-color: $bgHighlight; }}}
  .navbar-toggle {
    border-color: $bgHighlight;
    &:hover, &:focus {
      background-color: $bgHighlight; }
    .icon-bar {
      background-color: $colDefault; }}
  .navbar-collapse,
  .navbar-form {
    border-color: $colDefault; }
  .navbar-link {
    color: $colDefault;
    &:hover {
      color: $colHighlight; }}}
@media (max-width: 767px) {
  .navbar-default .navbar-nav .open .dropdown-menu {
    > li > a {
      color: $colDefault;
      &:hover, &:focus {
        color: $colHighlight; }}
    > .active {
      > a, > a:hover, > a:focus, {
        color: $colHighlight;
        background-color: $bgHighlight; }}}
}

最后,一个小礼物

我刚刚做了一个脚本,可以让你生成你的主题。 TWBSColor - 生成你自己的Bootstrap导航条

[更新]。TWBSColor现在可以生成SCSS/SASS/Less/CSS代码。
[更新]:从现在开始,你可以使用Less作为TWBSColor提供的默认语言
[更新]:TWBSColor现在支持下拉菜单的着色[更新]:TWBSColor现在可以选择你的版本(增加了对Bootstrap 4的支持)[更新]:TWBSColor现在可以选择你的版本。

评论(14)

为Bootstrap 4更新了2018年

在Bootstrap 4中,改变导航条的颜色是不同的(而且更容易一点)。你可以创建一个自定义的导航条类,然后引用它来改变导航条,而不影响其他Bootstrap导航。

...

Bootstrap 4.0

在Bootstrap 4中,改变导航条所需的CSS要少得多...

.navbar-custom {
    background-color: #ff5500;
}
/* change the brand and text color */
.navbar-custom .navbar-brand,
.navbar-custom .navbar-text {
    color: rgba(255,255,255,.8);
}
/* change the link color */
.navbar-custom .navbar-nav .nav-link {
    color: rgba(255,255,255,.5);
}
/* change the color of active or hovered links */
.navbar-custom .nav-item.active .nav-link,
.navbar-custom .nav-item:hover .nav-link {
    color: #ffffff;
}

Bootstrap 4自定义导航栏演示![在此输入图片描述][1]

改变活动/悬停链接的底色也可以用同样的CSS,但如果你想让bg颜色充满链接的全部高度,你必须调整padding...

py-0去掉整个导航条的垂直填充...

...

/* change the link color and padding  */
.navbar-custom .navbar-nav .nav-link {
    color: rgba(255,255,255,.5);
    padding: .75rem 1rem;
}

/* change the color and background color of active links */
.navbar-custom .nav-item.active .nav-link,
.navbar-custom .nav-item:hover .nav-link {
    color: #ffffff;
    background-color: #333;
}

Bootstrap 4 更改链接和背景颜色演示

另见:https://stackoverflow.com/questions/42586729/


Bootstrap 3


  <div class="navbar-header">
    ...

    <a class="navbar-brand" href="#">Title</a>
  </div>
   ...


.navbar-custom {
    background-color:#229922;
    color:#ffffff;
    border-radius:0;
}

.navbar-custom .navbar-nav > li > a {
    color:#fff;
}

.navbar-custom .navbar-nav > .active > a {
    color: #ffffff;
    background-color:transparent;
}

.navbar-custom .navbar-nav > li > a:hover,
.navbar-custom .navbar-nav > li > a:focus,
.navbar-custom .navbar-nav > .active > a:hover,
.navbar-custom .navbar-nav > .active > a:focus,
.navbar-custom .navbar-nav > .open >a {
    text-decoration: none;
    background-color: #33aa33;
}

.navbar-custom .navbar-brand {
    color:#eeeeee;
}
.navbar-custom .navbar-toggle {
    background-color:#eeeeee;
}
.navbar-custom .icon-bar {
    background-color:#33aa33;
}

Bootply上的自定义导航栏演示


如果导航条有下拉菜单,请添加以下内容来改变下拉菜单的颜色。

/* for dropdowns only */
.navbar-custom .navbar-nav .dropdown-menu  { 
  background-color: #33aa33;
}
.navbar-custom .navbar-nav .dropdown-menu>li>a  { 
  color: #fff;
}
.navbar-custom .navbar-nav .dropdown-menu>li>a:hover,.navbar-custom .navbar-nav .dropdown-menu>li>a:focus  { 
  color: #33aa33;
}

带下拉的演示


评论(6)

使用更少

你也可以考虑编译你自己的版本。试试http://getbootstrap.com/customize/(其中有一个单独的部分用于导航栏设置(默认导航栏和反转导航栏)),或者从https://github.com/twbs/bootstrap,下载你自己的副本。

你可以在variables.less中找到导航条的设置。navbar.less是用来编译导航条的(取决于variables.lessmixins.less)。

复制'navbar-default部分',并填入你自己的颜色设置。改变variables.less中的变量将是最简单的方法(改变默认或反向导航条不会有问题,因为你每页只有一个导航条)。

在大多数情况下,你不会改变所有的设置。

// Navbar
// -------------------------

// Basics of a navbar
@navbar-height:                    50px;
@navbar-margin-bottom:             @line-height-computed;
@navbar-default-color:             #777;
@navbar-default-bg:                #f8f8f8;
@navbar-default-border:            darken(@navbar-default-bg, 6.5%);
@navbar-border-radius:             @border-radius-base;
@navbar-padding-horizontal:        floor(@grid-gutter-width / 2);
@navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);

// Navbar links
@navbar-default-link-color:                #777;
@navbar-default-link-hover-color:          #333;
@navbar-default-link-hover-bg:             transparent;
@navbar-default-link-active-color:         #555;
@navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);
@navbar-default-link-disabled-color:       #ccc;
@navbar-default-link-disabled-bg:          transparent;

// Navbar brand label
@navbar-default-brand-color:               @navbar-default-link-color;
@navbar-default-brand-hover-color:         darken(@navbar-default-link-color, 10%);
@navbar-default-brand-hover-bg:            transparent;

// Navbar toggle
@navbar-default-toggle-hover-bg:           #ddd;
@navbar-default-toggle-icon-bar-bg:        #ccc;
@navbar-default-toggle-border-color:       #ddd;

你也可以试试http://twitterbootstrap3navbars.w3masters.nl/。这个工具可以为你的自定义导航条生成CSS代码。另外,你还可以为导航条添加渐变的颜色和边框。

评论(0)