在 Twitter Bootstrap 2.0.4 中更改导航栏颜色

33

想知道有没有人知道如何在Bootstrap v2.0.4中更改导航栏颜色。

我尝试了这个解决方案,但似乎不起作用:navbar color in Twitter Bootstrap

还有其他解决方案吗?我尝试了定制的Bootstrap包,但是我已经进行到了开发的深入阶段,不能像那样进行切换。

代码:

.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);}

3
这句话的意思是什么?如果您在浏览器的开发工具中查看,您的样式是否得到应用,然后被其他代码覆盖了吗? - Christofer Eliasson
2
无论你在哪里包含bootstrap.css和覆盖bootstrap的自己的样式表,都要确保你的样式表是最后被包含的。 - Rooster
1
感谢您的评论,我已经覆盖了“code”背景图像,但没有渐变。一旦我覆盖了它们,我就可以得到我想要的颜色了。其次,我已经按照约翰建议的进行了更改。 - jacobronniegeorge
我不能给那些评论点赞吗? - jacobronniegeorge
6个回答

65
导航栏的颜色来源于bootstrap.css中的第3582到3589行的 .navbar-inner 部分(适用于2.0.4版本)。

.navbar-inner in boostrap.css

CSS属性按特定顺序应用:
- 背景颜色(所有Web浏览器都支持) - 厂商前缀-moz,-ms,-webkit,-o(为了服务于特定的Web浏览器) - 标准(但尚未实现)
在boostrap.css中,Chrome中的background-color被覆盖的示例: background-color:#ffffff;被直接替换为background-color:#eab92d在boostrap.css中(不建议这样做,只是为了说明这个问题)。 background-color: #EAB92D首先应用 -moz-linear-gradient-ms-linear-gradient被忽略 -webkit-gradient覆盖background: #EAB92D(回到默认渐变) -webkit-linear-gradient覆盖-webkit-gradient -o-linear-gradientlinear-gradient被忽略

.navbar-inner with backgroud-color replaced

.navbar-inner with backgroud-color replaced result

从colorzilla更改.navbar-inner的颜色

您可以使用colorzilla轻松创建跨浏览器渐变。

在调用bootstrap.css后,在<head>中创建一个<style>标签。

然后将由colorzilla生成的CSS复制到<style>标签内的.navbar-inner {}中。

.navbar-inner {
  background: #eab92d; /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VhYjkyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNjNzk4MTAiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
  background: -moz-linear-gradient(top,  #eab92d 0%, #c79810 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eab92d), color-stop(100%,#c79810)); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,  #eab92d 0%,#c79810 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,  #eab92d 0%,#c79810 100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(top,  #eab92d 0%,#c79810 100%); /* IE10+ */
  background: linear-gradient(to bottom,  #eab92d 0%,#c79810 100%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eab92d', endColorstr='#c79810',GradientType=0 ); /* IE6-8 */
}

由Colorzilla生成的CSS会覆盖来自boostrap.css的所有CSS属性,如下所示。

.navbar-inner large

.navbar-inner small enter image description here

更改“.navbar-inner”是不够的,还需要更改其他一些部分。
“.navbar .btn-navbar”(在宽度小于768px时打开菜单的按钮)与“。navbar-inner”共享相同的属性。
.navbar-inner, .navbar .btn-navbar {
    background: #eab92d; /* Old browsers */
    /* IE9 SVG, needs conditional override of 'filter' to 'none' */
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2VhYjkyZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNjNzk4MTAiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
    background: -moz-linear-gradient(top,  #eab92d 0%, #c79810 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eab92d), color-stop(100%,#c79810)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  #eab92d 0%,#c79810 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  #eab92d 0%,#c79810 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  #eab92d 0%,#c79810 100%); /* IE10+ */
    background: linear-gradient(to bottom,  #eab92d 0%,#c79810 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eab92d', endColorstr='#c79810',GradientType=0 ); /* IE6-8 */
    }

"

.divider-vertical(垂直分隔符)使用渐变中使用的相同颜色。

"
.navbar .divider-vertical {
    background-color: #c79810;
    border-right: 1px solid #eab92d;
    }

.active(活动页面上的高亮)对应于渐变的深色。

.navbar .nav .active > a, .navbar .nav .active > a:hover {
    background-color: #c79810;
    }

菜单链接的颜色也需要更改,此时应将渐变中公平颜色的75%更改为白色。
.navbar .nav > li > a {
    color: #f9ed9d;
    }

最后是 .brand 的颜色,本例中是从渐变的浅色到白色的50%。

.navbar-fixed-top .brand {
    color: #634c08;color: #f4dc87;
    }

链接的:hover颜色没有被更改,但可以使用以下方法进行更改:
.navbar .nav > li > a:hover {color:white;}

同样适用于活动链接的颜色

.navbar .nav .active > a, .navbar .nav .active > a:hover {color:white;}

.navbar-inner result large .navbar-inner result small


2
非常好的回答!我一直在寻找如何更改文本颜色和其他内容,你的帖子帮了我很多。 - Bogdan
你如何将链接的颜色更改为渐变的公平颜色的75%至白色? .brand的50%呢?我正在使用colorzilla网站。 - Daniel

14

一个简单的方法(与baptme获得的结果相同): 我在rails中使用它来进行条件布局(使用gem bootstrap-sass)。

在您的scss文件中,导入bootstrap之前,定义一些变量:

$navbarBackground:                #c79810 ;
$navbarBackgroundHighlight:       #eab92d ;
$navbarText:                      #f9ed9d ;
$navbarLinkColor:                 #f9ed9d ;
$navbarSearchPlaceholderColor:    #EEC844 ;

@import 'bootstrap' ;

明白了 :)


5

1
如果您只想使用以前版本的Bootstrap的深色导航栏外观,您可以将.navbar-inverse类添加到导航栏元素中。
<div class="navbar navbar-inverse">

0

使用Firebug查看。您可以单击有问题的精确导航栏,查看应用于其上的CSS样式。


0

对于使用twitter-bootstrap-rails gem的人,扩展@Traz超简洁的LESS答案

@navbarBackground:                #c79810 ;
@navbarBackgroundHighlight:       #eab92d ;
@navbarText:                      #f9ed9d ;
@navbarLinkColor:                 #f9ed9d ;
@navbarSearchPlaceholderColor:    #EEC844 ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接