在Twitter Bootstrap 3中更改导航栏颜色
我将如何去修改CSS来改变Twitter Bootstrap 3中的导航栏的颜色?
tl; dr – 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
:hover颜色(#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现在允许select你的版本(添加Bootstrap 4支持)
您可以创build自定义的导航栏类,然后引用它来更改导航栏而不会影响其他的Bootstrap导航。
<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>
Bootstrap 3 CSS
.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; }
演示与下拉菜单
Bootstrap 4更新
我知道原来的问题是为3.x,但我认为一个新的Bootstrap 4的例子也会有所帮助。 Bootstrap 4中所需的CSS要less得多…
.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自定义导航栏演示
我花了一段时间,但是我发现包括以下内容是可以改变导航栏颜色的:
.navbar{ background-image: none; }
使用较less
你也可以考虑编译你自己的版本。 尝试http://getbootstrap.com/customize/ (其中Navbars设置(默认导航栏和倒转的导航栏)有一个分开的部分)或从https://github.com/twbs/bootstrap下载自己的副本。;
你会在variables.less
findnavbar的设置。 navbar.less
用于编译导航栏(取决于variables.less
和mixins.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代码。 或者,您也可以将渐变颜色和边框添加到导航栏。
只需在html导航栏中添加一个id,例如:
<nav id="navbar-yellow" class="navbar navbar-default navbar-fixed-top" role="navigation">
有了这个ID你可以风格的导航颜色,但也链接和下拉菜单
适用于不同types的navbars的示例
黑色
黄色
深蓝
红樱桃)
深绿色
这是CSS
/* * Black navbar style */ #navbar-black.navbar-default { /* #3C3C3C - #222222 */ font-size: 14px; background-color: rgba(34, 34, 34, 1); background: -webkit-linear-gradient(top, rgba(60, 60, 60, 1) 0%, rgba(34, 34, 34, 1) 100%); background: linear-gradient(to bottom, rgba(60, 60, 60, 1) 0%, rgba(34, 34, 34, 1) 100%); border: 0px; border-radius: 0; } #navbar-black.navbar-default .navbar-nav>li>a:hover, #navbar-black.navbar-default .navbar-nav>li>a:focus, #navbar-black.navbar-default .navbar-nav>li>ul>li>a:hover, #navbar-black.navbar-default .navbar-nav>li>ul>li>a:focus, #navbar-black.navbar-default .navbar-nav>.active>a, #navbar-black.navbar-default .navbar-nav>.active>a:hover, #navbar-black.navbar-default .navbar-nav>.active>a:focus { color: rgba(255, 255, 255, 1); background-color: rgba(0, 0, 0, 1); background: -webkit-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 1) 100%); background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 1) 100%); } #sidebar-black, #column-black { background-color: #222222; } #navbar-black.navbar-default .navbar-toggle { border-color: #222222; } #navbar-black.navbar-default .navbar-toggle:hover, #navbar-black.navbar-default .navbar-toggle:focus { background-color: #3C3C3C; } #navbar-black.navbar-default .navbar-nav>li>a, #navbar-black.navbar-default .navbar-nav>li>ul>li>a, #navbar-black.navbar-default .navbar-brand { color: #999999; } #navbar-black.navbar-default .navbar-toggle .icon-bar, #navbar-black.navbar-default .navbar-toggle:hover .icon-bar, #navbar-black.navbar-default .navbar-toggle:focus .icon-bar { background-color: #ffffff; } /* * Red navbar style */ #navbar-red.navbar-default { /* #990033 - #cc0033 */ font-size: 14px; background-color: rgba(153, 0, 51, 1); background: -webkit-linear-gradient(top, rgba(204, 0, 51, 1) 0%, rgba(153, 0, 51, 1) 100%); background: linear-gradient(to bottom, rgba(204, 0, 51, 1) 0%, rgba(153, 0, 51, 1) 100%); border: 0px; border-radius: 0; } #navbar-red.navbar-default .navbar-nav>li>a:hover, #navbar-red.navbar-default .navbar-nav>li>a:focus, #navbar-red.navbar-default .navbar-nav>li>ul>li>a:hover, #navbar-red.navbar-default .navbar-nav>li>ul>li>a:focus, #navbar-red.navbar-default .navbar-nav>.active>a, #navbar-red.navbar-default .navbar-nav>.active>a:hover, #navbar-red.navbar-default .navbar-nav>.active>a:focus { color: rgba(51, 51, 51, 1); background-color: rgba(255, 255, 255, 1); background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); } #sidebar-red, #column-red { background-color: #990033; } #navbar-red.navbar-default .navbar-toggle { border-color: #990033; } #navbar-red.navbar-default .navbar-toggle:hover, #navbar-red.navbar-default .navbar-toggle:focus { background-color: #cc0033; } #navbar-red.navbar-default .navbar-nav>li>a, #navbar-red.navbar-default .navbar-nav>li>ul>li>a, #navbar-red.navbar-default .navbar-brand { color: #999999; } #navbar-red.navbar-default .navbar-toggle .icon-bar, #navbar-red.navbar-default .navbar-toggle:hover .icon-bar, #navbar-red.navbar-default .navbar-toggle:focus .icon-bar { background-color: #ffffff; } /* * Darkblue navbar style */ #navbar-darkblue.navbar-default { /* #003399 - #0033cc */ font-size: 14px; background-color: rgba(51, 51, 153, 1); background: -webkit-linear-gradient(top, rgba(51, 51, 204, 1) 0%, rgba(51, 51, 153, 1) 100%); background: linear-gradient(to bottom, rgba(51, 51, 204, 1) 0%, rgba(51, 51, 153, 1) 100%); border: 0px; border-radius: 0; } #navbar-darkblue.navbar-default .navbar-nav>li>a:hover, #navbar-darkblue.navbar-default .navbar-nav>li>a:focus, #navbar-darkblue.navbar-default .navbar-nav>li>ul>li>a:hover, #navbar-darkblue.navbar-default .navbar-nav>li>ul>li>a:focus, #navbar-darkblue.navbar-default .navbar-nav>.active>a, #navbar-darkblue.navbar-default .navbar-nav>.active>a:hover, #navbar-darkblue.navbar-default .navbar-nav>.active>a:focus { color: rgba(51, 51, 51, 1); background-color: rgba(255, 255, 255, 1); background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); } #sidebar-darkblue, #column-darkblue { background-color: #333399; } #navbar-darkblue.navbar-default .navbar-toggle { border-color: #333399; } #navbar-darkblue.navbar-default .navbar-toggle:hover, #navbar-darkblue.navbar-default .navbar-toggle:focus { background-color: #3333cc; } #navbar-darkblue.navbar-default .navbar-nav>li>a, #navbar-darkblue.navbar-default .navbar-nav>li>ul>li>a, #navbar-darkblue.navbar-default .navbar-brand { color: #999999; } #navbar-darkblue.navbar-default .navbar-toggle .icon-bar, #navbar-darkblue.navbar-default .navbar-toggle:hover .icon-bar, #navbar-darkblue.navbar-default .navbar-toggle:focus .icon-bar { background-color: #ffffff; } /* * Darkgreen navbar style */ #navbar-darkgreen.navbar-default { /* #006633 - #009933 */ font-size: 14px; background-color: rgba(0, 102, 51, 1); background: -webkit-linear-gradient(top, rgba(0, 153, 51, 1) 0%, rgba(0, 102, 51, 1) 100%); background: linear-gradient(to bottom, rgba(0, 153, 51, 1) 0%, rgba(0, 102, 51, 1) 100%); border: 0px; border-radius: 0; } #navbar-darkgreen.navbar-default .navbar-nav>li>a:hover, #navbar-darkgreen.navbar-default .navbar-nav>li>a:focus, #navbar-darkgreen.navbar-default .navbar-nav>li>ul>li>a:hover, #navbar-darkgreen.navbar-default .navbar-nav>li>ul>li>a:focus, #navbar-darkgreen.navbar-default .navbar-nav>.active>a, #navbar-darkgreen.navbar-default .navbar-nav>.active>a:hover, #navbar-darkgreen.navbar-default .navbar-nav>.active>a:focus { color: rgba(51, 51, 51, 1); background-color: rgba(255, 255, 255, 1); background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); } #sidebar-darkgreen, #column-darkgreen { background-color: #006633; } #navbar-darkgreen.navbar-default .navbar-toggle { border-color: #006633; } #navbar-darkgreen.navbar-default .navbar-toggle:hover, #navbar-darkgreen.navbar-default .navbar-toggle:focus { background-color: #009933; } #navbar-darkgreen.navbar-default .navbar-nav>li>a, #navbar-darkgreen.navbar-default .navbar-nav>li>ul>li>a, #navbar-darkgreen.navbar-default .navbar-brand { color: #999999; } #navbar-darkgreen.navbar-default .navbar-toggle .icon-bar, #navbar-darkgreen.navbar-default .navbar-toggle:hover .icon-bar, #navbar-darkgreen.navbar-default .navbar-toggle:focus .icon-bar { background-color: #ffffff; } /* * Yellow navbar style */ #navbar-yellow.navbar-default { /* #99ff00 - #ccff00 */ font-size: 14px; background-color: rgba(153, 255, 0, 1); background: -webkit-linear-gradient(top, rgba(204, 255, 0, 1) 0%, rgba(153, 255, 0, 1) 100%); background: linear-gradient(to bottom, rgba(204, 255, 0, 1) 0%, rgba(153, 255, 0, 1) 100%); border: 0px; border-radius: 0; } #navbar-yellow.navbar-default .navbar-nav>li>a:hover, #navbar-yellow.navbar-default .navbar-nav>li>a:focus, #navbar-yellow.navbar-default .navbar-nav>li>ul>li>a:hover, #navbar-yellow.navbar-default .navbar-nav>li>ul>li>a:focus, #navbar-yellow.navbar-default .navbar-nav>.active>a, #navbar-yellow.navbar-default .navbar-nav>.active>a:hover, #navbar-yellow.navbar-default .navbar-nav>.active>a:focus { color: rgba(51, 51, 51, 1); background-color: rgba(255, 255, 255, 1); background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%); } #sidebar-yellow, #column-yellow { background-color: #99ff00; } #navbar-yellow.navbar-default .navbar-toggle { border-color: #99ff00; } #navbar-yellow.navbar-default .navbar-toggle:hover, #navbar-yellow.navbar-default .navbar-toggle:focus { background-color: #ccff00; } #navbar-yellow.navbar-default .navbar-nav>li>a, #navbar-yellow.navbar-default .navbar-nav>li>ul>li>a, #navbar-yellow.navbar-default .navbar-brand { color: #999999; } #navbar-yellow.navbar-default .navbar-toggle .icon-bar, #navbar-yellow.navbar-default .navbar-toggle:hover .icon-bar, #navbar-yellow.navbar-default .navbar-toggle:focus .icon-bar { background-color: #ffffff; }
试试这个。 这对我有效。
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { background-color: #00a950; color: #000000; }
如果只是改变导航栏的颜色,我的build议是使用: Bootstrap Magic 。 您可以更改导航栏不同属性的值并查看预览。 将结果作为自定义CSS样式表或LESSvariables文件下载。 你可以改变input栏和颜色select器的值。 ÿ
在这个导航栏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; }
你必须直接更改CSS吗? 关于什么…
<nav class="navbar navbar-inverse" style="background-color: #333399;"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Logo</a> </div> <div class="collapse navbar-collapse" id="myNavbar"> <ul class="nav navbar-nav"> <li class="active"><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Projects</a></li> <li><a href="#">Contact</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li> </ul> </div>
在twittter bootstrap中反转和歪曲类名引起它们的黑白色。 更好的是,你不应该重写,并添加一个类附近,写你特定的风格
my_style{ background-color:green; }
它可以通过使用style =“”属性直接完成,例如,你想要覆盖它的任何html标签。
<nav class="navbar navbar-default" style="font-weight: bold; background-color: #569AAB;">
这会覆盖引导程序的默认CSS。
没有必要单独定义一套完整的样式或CSS。