Estou usando o Twitter Bootstrap 2.0.1 em um projeto Rails 3.1.2, implementado com bootstrap-sass. Estou carregando bootstrap.css
os bootstrap-responsive.css
arquivos e os arquivos, bem como o bootstrap-collapse.js
Javascript.
Eu tenho um layout fluido com uma barra de navegação semelhante ao exemplo . Isso segue as instruções de "variação responsiva" da barra de navegação aqui . Funciona bem: se a página for mais estreita do que cerca de 940 px, a barra de navegação se fecha e exibe um "botão" no qual posso clicar para expandir.
No entanto, minha barra de navegação parece boa com cerca de 550 px de largura, ou seja, não precisa ser recolhida a menos que a tela seja muito estreita.
Como faço para dizer ao Bootstrap para recolher a barra de navegação apenas se a tela tiver menos de 550 px de largura?
Observe que, neste ponto, não quero modificar os outros comportamentos responsivos, por exemplo, empilhar elementos em vez de exibi-los lado a lado.
fonte
Respostas:
Você está procurando a linha 239 de
bootstrap-responsive.css
Onde o
max-width
valor aciona o nav responsivo. Altere-o para 550 px ou mais e deve redimensionar bem.fonte
bootstrap-responsive.css
está enterrado na joia bootstrap-sass. Sim, eu poderia editá-lo, mas quando a gema for atualizada, eu teria que fazer novamente. Existe uma maneira de substituir a consulta @media, semelhante a substituir outros elementos CSS?@media (max-width: 767px)
bloco. Parece que terei que fazer uma substituição mais ampla, conforme sugerido na resposta de Andrés Ilich.@media (max-width: 767px)
. Esperançosamente, o Bootstrap (ou bootstrap-sass) um dia incluirá um meio de usar variáveis para definir os limites, mas acho que isso exigirá interpolação nos seletores de mídia .Bootstrap> 2.1 && <3
Atualização de 2013: o jeito fácil
(THX para Archonic via comentário)
Atualização 2014: Bootstrap 3.1.1 e 3.2 (eles até o adicionaram à documentação )
Se você estiver personalizando ou substituindo / editando
.less
variáveis, você está procurando:fonte
@navbarCollapseWidth: 600px;
boostrap_and_overrides.css.less.Você pode estabelecer uma nova
@media
consulta para soltar os elementos da barra de navegação conforme achar necessário, tudo o que você precisa fazer é redefinir o anterior para acomodar sua nova consulta com a largura de queda desejada. Veja isso por exemplo:CSS
No código a seguir, você pode ver como incluí a
@media
consulta original que lida com a queda antes da979px
marca e a nova consulta para oferecer suporte ao ponto de queda desejado550px
. Modifiquei a consulta original diretamente do css responsivo ao bootstrap para redefinir todos os estilos aplicados a essa consulta específica para os elementos navbar e os transferi para a nova consulta que carrega o ponto de soltar de que você precisa. Desta forma, podemos comutar todos os estilos da consulta original para a nova consulta sem mexer na folha de estilo responsiva ao bootstrap, desta forma os valores padrão ainda se aplicarão aos outros elementos do seu documento.Aqui está uma breve demonstração com uma consulta de mídia configurada para ser exibida
550px
conforme sua necessidade: http://jsfiddle.net/wU8MW/Observação: coloquei as
@media
consultas modificadas acima bem abaixo do quadro css, pois o novo css modificado deve ser carregado primeiro do que o css responsivo.fonte
@media (max-width: 979px)
consulta original para fazer a nova@media (max-width: 550px)
consulta. Em seguida, (2) você codificou manualmente uma nova consulta de 979 pixels para substituir os efeitos da consulta de 979 pixels no mainbootstrap-responsive.css
? A sequência de tags em seu CSS não parece seguir a sequênciabootstrap-responsive.css
, por isso estou tendo dificuldade em compará-las para ver o que você fez.@media (max-width: 550px)
consulta que escrevi não segue a@media (max-width: 979px)
sintaxe das consultas iniciais porque tudo o que fiz foi um exemplo rápido substituindo-a manualmente por meio de firebug e copiar / colar, fiquei com preguiça nisso, mas a maneira certa de fazer isso é como você mencionou na segunda ponto.bootstrap-sass suportará a variável $ navbarCollapseWidth na próxima versão (2.2.1.0). Você poderá atualizá-lo para fazer exatamente o que deseja quando a versão estiver no ar!
fonte
@import "bootstrap";
Em agosto de 2013, uma página "Personalizar e baixar" do Bootstrap 3 pode ser encontrada em http://getbootstrap.com/customize/
Com o Bootstrap 3, a variável relevante é @ grid-float-breakpoint.
A seguinte página Stack Overflow tem detalhes adicionais: Bootstrap 3 Navbar Collapse
fonte
Suspeito (e espero) que isso seja implementado oficialmente em breve. Nesse ínterim, estou apenas fazendo um hack simples de css, usando visible-phone no botão suspenso e visible-tablet em um segundo conjunto de botões que coloquei na barra de navegação. Antes parecia assim:
E agora parece:
Observe que a ordem dos elementos é importante, caso contrário, você pode ter problemas com os elementos indo para a próxima linha
fonte
Eu criei um arquivo SCSS separado que listou todas as parciais que o bootstrap precisa, dessa forma eu posso ligar e desligar as parciais dependendo das necessidades de nosso site. Dessa forma, posso substituir a variável de ponto de interrupção facilmente. Aqui está o que eu tenho:
fonte
Aqui está o meu código (todas as outras soluções mostraram uma barra de rolagem funky quando a barra de navegação caiu, então eu editei o código, mas não o fez). Não consegui postar em outra resposta, então farei aqui para que outros encontrem. Estou usando rails para fazer isso com o Bootstrap 3.0.
ativos / folhas de estilo / estrutura e substituições, cole isto: (Ajuste a largura máxima para qualquer valor para atingir seu objetivo.)
fonte
Bootstrap 3.x
usando MENOS , você pode alterar o valor de
@screen-small
para atingir seu tamanho mínimoexemplo:
@screen-small: 600px;
Eu uso isso apenas para mudar para o modo "dispositivo minúsculo" quando a largura for inferior a 600px
fonte
Bootstrap 3.x
usando SASS, você pode alterar o valor de $ screen-sm para atingir seu tamanho mínimo
exemplo: $ screen-sm: 600px;
Você precisa colocar este valor em seu arquivo application.scss antes do @import "bootstrap";
Menos variáveis começam com "@" apenas alteradas para "$" para substituí-las antes da importação.
Aqui está a lista de variáveis.
fonte
Bootstrap 4.x
É muito fácil alterar o limite de recolhimento no Bootstrap 4.x. Existem 6 casos:
<nav class="navbar navbar-expand">...</nav>
<nav class="navbar navbar-expand-sm">...</nav>
<nav class="navbar navbar-expand-md">...</nav>
<nav class="navbar navbar-expand-lg">...</nav>
<nav class="navbar navbar-expand-xl">.../nav>
<nav class="navbar">...</nav>
(Apenas remova anavbar-expand-*
classe. Móvel primeiro como no Bootstrap 4.x)Crédito neste artigo de Carol Skelly. Encontrei https://medium.com/wdstack/examples-bootstrap-4-navbar-b3c9dc0edc1a
fonte
Este é um ótimo exemplo de onde você poderia estar usando a versão MENOS dos arquivos CSS do Bootstrap. Veja abaixo como fazer isso.
Ainda melhor seria enviar isso como uma solicitação pull no Github para que todos possam se beneficiar e seu "código personalizado" faça parte do Bootstrap daqui para frente.
variables.less
que especifique quando recolher a barra de navegação. Algo como:@navCollapseWidth: 979px
responsive-navbar.less
...@media (max-width: 979px)
para cima@media (max-width: @navCollapseWidth)
@media (min-width: 980px)
para@media (max-width: @navCollapseWidth - 1)
Claro ... você teria que compilar LESS usando um dos métodos sugeridos .
fonte
Levando o hack de tyler ainda mais longe, adicionando um bloco de classe de telefone visível e uma classe de telefone oculto a um item na navegação recolhível principal, você pode 'retirar' um ou dois dos itens recolhidos para exibir até mesmo na barra de navegação do telefone.
fonte
Basta escrever este código em seu arquivo style.css personalizado e ele funcionará
fonte