cor da barra de navegação no Twitter Bootstrap


113

Como posso alterar a cor de fundo da barra de navegação do Twitter Bootstrap 2.0.2? Como posso alterar a cor de todos os elementos da barra de navegação para refletir a cor de fundo?


1
Resolvido. Alterações feitas em bootstrap.css .navbar-inner {background-color: # 2c2c2c; mudou a cor de fundo, comentou tudo o mais. Obrigado.
— Gattoo

12
não recomendo que você modifique a folha de estilo css principal do bootstrap simplesmente porque quando você atualiza a folha de estilo, todas as suas alterações serão perdidas, então apenas inclua qualquer modificação necessária em sua própria folha de estilo.
— Andres Ilich

Obrigado Andres, Quais são as outras formas de mudar o comportamento do Bootstrap? A barra de navegação é um problema para a maioria dos sites, pois as pessoas simplesmente não conseguem acreditar que a web é tão boa para a estética quanto para a funcionalidade.
— Gattoo

4
Você pode realmente sobrescrever a maioria das regras de bootstrap dentro de sua própria folha de estilo, você não precisa tocar na folha de estilo bootstrap.css de forma alguma. Desta forma, quando o bootstrap for atualizado você pode apenas atualizá-lo imediatamente e todas as suas alterações permanecerão, e também desta maneira você pode sobrescrever os estilos do boostrap para atender às suas necessidades (sejam fontes ou cores) do seu site.
— Andres Ilich

Respostas:


134

Você pode sobrescrever as cores de bootstrap, incluindo a .navbar-innerclasse, direcionando-as em sua própria folha de estilo em vez de modificar a folha de estilo bootstrap.css, assim:

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

Você apenas tem que modificar todos esses estilos com o seu próprio e eles serão escolhidos, como algo assim por exemplo, onde eu elimino todos os efeitos de gradiente e apenas configuro uma cor de fundo preta sólida:

.navbar-inner {
  background-color: #000; /* background color will be black for all browsers */
  background-image: none;
  background-repeat: no-repeat;
  filter: none;
}

Você pode aproveitar as vantagens de ferramentas como o Editor de gradiente Colorzilla e criar suas próprias cores gradientes para todos os navegadores e substituir as cores originais pelas suas.

E como mencionei nos comentários, eu não recomendo que você modifique a folha de estilo bootstrap.css diretamente, pois todas as suas alterações serão perdidas assim que a folha de estilo for atualizada (a versão atual é v2.0.2 ), então é preferível que você inclua todos suas alterações dentro de sua própria folha de estilo, em conjunto com a folha de estilo bootstrap.css. Mas lembre-se de substituir todas as propriedades apropriadas para ter consistência entre os navegadores.


2
background-image: none;seis vezes?
— Nowaker

2
@DamianNowak uau, acabei de notar isso, obrigado pela dica: D ultimate brain peid.
— Andres Ilich

Obrigado. Estava me deixando louco que eu não pudesse definir a cor de fundo para qualquer coisa e fazer com que se aplicasse a toda a barra de navegação.
— Automatico

30

Um excelente recurso para ver como criar um tema é: bootswatch.com . Ele tem bons exemplos e mostra o código também. Resumindo, eles usam lessc para recompilar o bootstrap.css para seu novo color-theme.css. O bom de sua abordagem é que é construída sobre o bootstrap, então quando o bootstrap é atualizado, você apenas recompila.

Links sobre como usar lessc e bootstrap:


Recursos maravilhosos Alexander. Muito obrigado.
— Gattoo

1
Obrigado pelo link do bootswatch :)
— Akshat Jiwan Sharma

6

Se você não tem tempo para aprender "menos" ou fazer isso corretamente, aqui está um hack sujo ...

Adicione isto acima, onde você renderiza o HTML da barra de navegação bootstrap - atualize as cores conforme necessário.

<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

Estou usando o Bootstrap versão 3.2.0 e parece que .navbar-inner não existe mais.

As soluções aqui que sugerem substituir .navbar-inner não funcionaram para mim - a cor permaneceu a mesma.

A cor só mudou quando eu substituí .navbar conforme mostrado abaixo:

.navbar {
    background-color: #A4C8EC;
    background-image: none;
}

3

A melhor maneira atualmente de fazer o mesmo seria instalar o compilador de linha de comando LESS usando

$ npm install -g less jshint recess uglify-js

Depois de fazer isso, vá para a pasta less no diretório e edite as variáveis ​​do arquivo .less e você pode alterar muitas variáveis ​​de acordo com o que você precisa, incluindo a cor da barra de navegação

@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%);

Depois de fazer isso, vá para o diretório de bootstrap e execute o comando make.


2

Se você estiver usando LESS, você pode usar Mixins para menos código. Aqui, adicionarei um gradiente, uma borda e um raio de borda:

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

* Se você estiver usando a gem rails, twitter-bootstrap-rails, eu faço isso diretamente no arquivo bootstrap_and_overrides.css.less *


2

isso é o que eu faço

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

funciona bem para todos os navegadores, você pode ver a demonstração aqui http://caverne.fr no topo


1

Na linha bootstrap.css 4784, vemos:

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

Você precisa remover todas as declarações de propriedade 'background-image' para obter o efeito desejado.


1

A navalha de occam não diria apenas para fazer isso até que você precise de algo mais complexo? É um pouco hack, mas pode atender às necessidades de alguém que deseja uma solução rápida.

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

1

Se você estiver usando a versão LESS ou SASS do Bootstrap. A forma mais eficiente é alterar o nome da variável, no arquivo LESS ou SASS.

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

Esta é de longe a maneira mais fácil e eficiente de alterar o Bootstraps Navbar. Você não precisa escrever substituições e o código permanece limpo.



0

Na verdade, acabo de sobrescrever qualquer coisa que desejo alterar no site.css, você deve carregar o site.css após a inicialização para que ele sobrescreva as classes. O que fiz agora é apenas criar minhas próprias aulas com meu próprio pequeno tema de bootstrap. Pequenas coisas como esta

.navbar-nav li a{
    color: #fff;
    font-size: 15px;
    margin-top: 9px;
}
.navbar-nav li a:hover{

    background-color: #18678E;
    height: 61px;
}

Eu também mudei os erros de validação da mesma maneira.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.