在Twitter Bootstrap中更改导航栏颜色

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


tl;博士 - TWBSColor - 生成您自己的Bootstrap导航栏

版本说明: - 在线工具:Bootstrap 3.3.2+ / 4.0.0+ - 此答案:Bootstrap 3.0.x

可用的导航栏

你有两个基本的navbars:

<!-- A light one -->
<nav class="navbar navbar-default" role="navigation"></nav>
<!-- A dark one -->
<nav class="navbar navbar-inverse" role="navigation"></nav>

默认的颜色使用

以下是主要颜色及其用法:

  • #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链接

    在这里输入图片说明

    和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支持)


    Bootstrap 4的2018年更新

    您可以创建自定义的导航栏类,然后引用它来更改导航栏而不会影响其他Bootstrap导航。

    <nav class="navbar navbar-custom">...</nav>
    

    Bootstrap 4.0.0

    我知道最初的问题是针对3.x,但我认为新的Bootstrap 4示例也会有所帮助。 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自定义导航栏演示 在这里输入图像描述


    Bootstrap 3

    <nav class="navbar navbar-custom">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">...
        </button>
        <a class="navbar-brand" href="#">Title</a>
      </div>
       ...
    </nav>
    
    
    .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上自定义Navbar演示


    如果导航栏有下拉菜单,请添加以下内容以更改下拉菜单的颜色:

    /* 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;
    }
    

    演示与下拉菜单


    使用较少

    你也可以考虑编译你自己的版本。 尝试http://getbootstrap.com/customize/(它有一个Navbars设置的分开部分(默认导航栏和倒转导航栏))或从https://github.com/twbs/bootstrap下载您自己的副本。

    您将在variables.less找到导航栏设置。 navbar.less用于编译导航栏(取决于variables.lessmixins.less )。

    复制'navbar-default部分'并填写您自己的颜色设置。 更改variables.less中的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代码。 或者,您也可以将渐变颜色和边框添加到导航栏中。

    链接地址: http://www.djcxy.com/p/2571.html

    上一篇: Change navbar color in Twitter Bootstrap

    下一篇: Make body have 100% of the browser height