Twitter Bootstrap中的导航栏颜色


113

如何更改Twitter Bootstrap 2.0.2导航栏的背景颜色?如何更改导航栏所有元素的颜色以反映背景颜色?


1
解决了。在bootstrap.css .navbar-inner {background-color:#2c2c2c; 更改了背景颜色,并评论了其他所有内容。谢谢。
Gattoo 2012年

12
不建议您仅修改引导主CSS样式表,因为当您更新样式表时,所有更改都将丢失,因此只需在自己的样式表中包括所需的任何修改即可。
安德烈斯·伊利希

感谢Andres,还有什么其他方法可以更改Bootstrap的行为?导航栏对于大多数网站来说是一个痛苦,因为他们只是无法相信Web在美观方面和功能方面都一样好。
Gattoo 2012年

4
实际上,您可以覆盖自己的样式表中的大多数bootstrap规则,根本不需要触摸bootstrap.css样式表。这样,在更新引导程序时,您可以立即进行更新,并且所有更改都将保留,而且您还可以通过这种方式覆盖boostrap样式,以适应您网站的需求(无论是字体还是颜色)。
Andres Ilich 2012年

Answers:


134

您可以.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;
}

您可以利用Colorzilla渐变编辑器之类的工具,为所有浏览器创建自己的渐变颜色,并用您自己的颜色替换原始颜色。

正如我在评论中提到的那样,我不建议您直接修改bootstrap.css样式表,因为一旦样式表更新(当前版本为v2.0.2),所有更改都将丢失,因此,最好包含所有与bootstrap.css样式表一起在您自己的样式表中进行更改。但是请记住要覆盖所有适当的属性,以在浏览器之间保持一致。


2
background-image: none;六次?
Nowaker

2
@DamianNowak哇,只是注意到了,谢谢你的提示:D终极的大脑放屁。
安德烈斯·伊利希

谢谢。我无法将背景颜色设置为任何颜色并将其应用于整个导航栏,这令我感到疯狂。
Automatico

30

看看如何设置主题引导程序的绝佳资源是:bootswatch.com。它有很好的示例,并显示了代码。简而言之,他们使用lessc将bootstrap.css重新编译为新的color-theme.css。他们的方法的好处是,它是建立在引导程序之上的,因此,在更新引导程序时,您只需重新编译即可。

有关使用lessc和bootstrap的链接:


亚历山大的资源非常丰富。非常感谢。
Gattoo 2012年

1
感谢您提供的bootswatch链接:)
Akshat

6

如果您没有时间学习“少”或正确地做,这是一个肮脏的hack ...

在渲染引导导航栏HTML的上方添加此代码-根据需要更新颜色。

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

3

当前执行此操作的最佳方法是使用以下命令安装LESS命令行编译器:

$ npm install -g less jshint recess uglify-js

完成此操作后,转到目录中的less文件夹,然后编辑文件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

如果使用的是LESS,则可以使用Mixins减少代码量。在这里,我将添加一个渐变,边界和边界半径:

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

*如果您使用的是rails gem,twitter-bootstrap-rails,我可以直接在bootstrap_and_overrides.css.less文件中执行此操作*


2

那就是我所做的

.navbar-inverse .navbar-inner {
  background-color: #E27403; /* it's 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上查看演示。


1

在bootstrap.css行4784中,我们看到:

.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”属性声明以获得所需的效果。


1

occam的剃刀会不会说要这样做,直到您需要更复杂的东西为止?这有点骇人听闻,但可能适合想要快速修复的人的需求。

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

1

如果您使用的是LESS或SASS版本的引导程序。最有效的方法是在LESS或SASS文件中更改变量名称。

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

到目前为止,这是更改Bootstraps导航栏的最简单,最有效的方法。您无需编写覆盖,代码仍保持干净。



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

我也以相同的方式更改了验证错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.