Existe alguma maneira de aumentar o ponto em que a barra de navegação do bootstrap 3 entra em colapso (ou seja, de forma que ela desmorone em uma lista suspensa nos tablets retratos)?
Esses dois eram aplicáveis ao bootstrap 2, mas não agora!
Alterar o ponto de interrupção da barra de navegação responsiva padrão
Respostas:
Eu tive o mesmo problema hoje.
Bootstrap 4
É uma funcionalidade nativa: https://getbootstrap.com/docs/4.0/components/navbar/#responsive-behaviors
Você precisa usar
.navbar-expand{-sm|-md|-lg|-xl}
classes:Bootstrap 3
Basta alterar
991px
por1199px
pormd
tamanhos.Demo
fonte
.navbar-collapse.collapse.in { display: block!important; }
para impedir que desapareça. Bom trabalho, porém, me salvou horas.dropdown-menu
itens na barra de navegação.A grande diferença entre o Bootstrap 2 e o Bootstrap 3 é que o Bootstrap 3 é "móvel primeiro".
Isso significa que os estilos padrão são projetados para dispositivos móveis e, no caso das Navbars, isso significa que "é recolhido" por padrão e "expande" quando atinge um determinado tamanho mínimo.
O site do Bootstrap 3 realmente tem uma "dica" sobre o que fazer: http://getbootstrap.com/components/#navbar
Se você for recompilar seu LESS, encontrará a variável LESS observada no
variables.less
arquivo. No momento, está definido como "expandir",@media (min-width: 768px)
que é uma "tela pequena" (ou seja, um tablet) pelos termos do Bootstrap 3.@grid-float-breakpoint: @screen-tablet;
Se você quiser manter o colapso por mais algum tempo, pode ajustá-lo da seguinte forma:
@grid-float-breakpoint: @screen-desktop;
(Ponto de interrupção de 992 px)ou expandir mais cedo
@grid-float-breakpoint: @screen-phone
(Ponto de interrupção de 480px)Se você deseja que ele se expanda mais tarde e não lide com a recompilação do LESS, será necessário substituir os estilos que são aplicados na
768px
consulta de mídia e fazê-los retornar ao valor anterior. Em seguida, adicione-os novamente no momento apropriado.Não tenho certeza se existe uma maneira melhor de fazer isso. Recompilar o Bootstrap MENOS às suas necessidades é a melhor (mais fácil) maneira. Caso contrário, você terá que encontrar todas as consultas de mídia CSS que afetam a sua Barra de navegação, substituí-las pelos estilos padrão na largura de 768px e depois revertê-las com uma largura mínima maior.
Recompilar o LESS fará toda essa mágica para você apenas alterando a variável. Qual é o objetivo dos pré-compiladores LESS / SASS. =)
(observe, eu pesquisei todos eles, são cerca de 100 linhas de código, o que é irritante o suficiente para eu abandonar a ideia e apenas recompilar o Bootstrap para um determinado projeto e evitar bagunçar algo por acidente)
Espero que ajude!
Felicidades!
fonte
/css
,/js
,/fonts
. A personalização apenas fornece os arquivos compilados que você selecionou.A maneira mais fácil é personalizar o bootstrap
encontrar variável:
definido como @ screen-sm, você pode alterá-lo de acordo com suas necessidades. Espero que ajude!
fonte
estes são controlados em variáveis, não há necessidade de mexer na fonte. com o bootstrap, tente primeiro as variáveis e, em seguida, substitua. então volte e tente as variáveis novamente;)
Eu usei o bootstrap-sass com trilhos, mas é o mesmo com o padrão MENOS.
é isso aí! essa página de referência de variáveis é super útil: https://github.com/twbs/bootstrap/blob/master/less/variables.less
fonte
Graças a Seb33300, consegui esse trabalho. No entanto, uma parte importante parece estar faltando. Pelo menos no Bootstrap versão 3.1.1.
Meu problema foi que a barra de navegação caiu de acordo com a largura correta, mas o botão de menu não funcionou. Não consegui expandir e recolher o menu.
Isso ocorre porque a classe collapse.in é substituída pela! Important em .navbar-collapse.collapse e pode ser resolvida adicionando também o "collapse.in". Exemplo de Seb33300 concluído abaixo:
fonte
Eu queria votar e comentar a resposta de jmbertucci, mas ainda não sou confiável com os controles. Eu tive o mesmo problema e resolvi como ele disse. Se você estiver usando o Bootstrap 3.0, edite as variáveis LESS em variable.less Os pontos de interrupção responsivos são definidos em torno da linha 200:
Em seguida, defina o valor de recolhimento da barra de navegação usando a variável @ grid-float-breakpoint em aproximadamente a linha 232. Por padrão, é definido como @ screen-tablet . Se você quiser, pode usar um valor de pixel, mas eu prefiro usar as variáveis LESS.
fonte
-min
os seguintes: @ screen-md-min: 800px; @ screen-lg-min: 1200px; @ ponto de interrupção de flutuação da grade: @ screen-md-min;Se o problema que você enfrentar for o menu dividido em várias linhas , tente um dos seguintes:
1) Tente reduzir o número de itens de menu ou seu tamanho, como remover itens de menu ou encurtar as palavras.
2) Reduzindo o preenchimento entre os itens do menu, desta forma:
O preenchimento padrão é 15px nos dois lados (esquerdo e direito).
Se você preferir alterar cada lado, use:
Essa configuração também afeta a lista suspensa.
Isso não responde à pergunta, mas pode ajudar outras pessoas que não querem mexer com o CSS ou usando variáveis LESS. As duas abordagens comuns para resolver esse problema.
fonte
O nabvar entrará em colapso em pequenos dispositivos. O ponto de recolhimento é definido por @ grid-float-breakpoint nas variáveis. Por padrão, isso ocorrerá antes de 768px. Para telas abaixo da largura da tela de 768 pixels, a barra de navegação será semelhante a:
É possível alterar o @ grid-float-breakpoint em variables.less e recompilar o Bootstrap. Ao fazer isso, você também precisará alterar @ screen-xs-max em navbar.less. Você precisará definir esse valor como seu novo @ grid-float-breakpoint -1. Consulte também: https://github.com/twbs/bootstrap/pull/10465 . Isso é necessário para alterar também os formulários e listas suspensas da barra de navegação no @ grid-float-breakpoint para a versão móvel.
fonte
Estou preocupado com os problemas de manutenção e atualização no caminho da personalização do Bootstrap. Posso documentar as etapas de personalização hoje e espero que a pessoa que atualiza o Bootstrap daqui a três anos encontre a documentação e aplique novamente as etapas (que podem ou não funcionar nesse ponto). Um argumento pode ser feito de qualquer maneira, suponho, mas prefiro manter qualquer personalização no meu código.
Eu não entendo direito como a abordagem do Seb33300 pode funcionar. Certamente não funcionou com o Bootstrap 4.0.3. Para que a barra de navegação seja expandida em 1200 em vez de 768, as regras para as duas consultas de mídia devem ser substituídas para impedir a expansão em 768 e forçar a expansão em 1200.
Eu tenho um menu mais longo que envolveria o iPad no modo Retrato. A seguir, o menu é recolhido até o ponto de interrupção 1200:
fonte
Eu fiz o caminho CSS com a minha instalação do Bootstrap 3.0.0, pois não conheço o LESS. Aqui está o código que eu adicionei ao meu arquivo CSS personalizado (que eu carrego após o bootstrap.css) que me permitiu controlar, para que o menu estivesse sempre funcionando como um arquivo
accordion
.Nota: Eu passei toda a minha
navbar
dentro de uma div com a classesidebar
para separar o comportamento que eu queria por isso não afetou outros navbars no meu site, como o menu principal. Ajuste de acordo com suas necessidades, espero que ajude.Nota adicional: Eu também adicionei uma alteração na alternância do menu principal
navbar
(uma vez que o código acima no meu site é usado para um "submenu" ao lado.Eu mudei:
para dentro:
E então também ajustado:
para dentro:
Se você tiver apenas um
navbar
, acho que não precisará se preocupar com isso, mas isso me ajudou no meu caso.fonte
E para quem deseja recolher com uma largura menor que o 768px padrão (expandir com largura menor que 768px), este é o css necessário:
fonte
Acho que encontrei uma solução simples para alterar o ponto de interrupção do colapso, apenas através de css.
Espero que outras pessoas possam confirmá-lo, pois não o testei completamente e não tenho certeza se existem efeitos colaterais nessa solução.
Você precisa alterar os valores da consulta de mídia para as seguintes definições de classe:
Foi isso que funcionou para mim no meu projeto atual, mas ainda preciso alterar algumas definições de css para organizar o menu corretamente para todos os tamanhos de tela.
Espero que isto ajude.
fonte