Eu tenho esse código de inicialização do Twitter
<div class='navbar navbar-fixed-top'>
<div class='navbar-inner'>
<div class='container'>
<a class='btn btn-navbar' data-target='.nav-collapse' data-toggle='collapse'>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
</a>
<div class='nav-collapse'>
<ul class='nav'>
<li class='active'>
<a href='some_url'>My Home</a>
</li>
<li>
<a href='some_url'>Option 1 </a>
</li>
<li>
<a href='some_url'>Another option</a>
</li>
<li>
<a href='some_url'>Another option</a>
</li>
</ul>
</div>
</div>
</div>
</div>
Mas quando estou visualizando o início da página, a barra de navegação está bloqueando parte do conteúdo que fica próximo ao topo da página. Alguma idéia de como fazê-lo baixar o restante do conteúdo para baixo quando a parte superior da página é exibida, para que o conteúdo não seja bloqueado pela barra de navegação?
css
twitter-bootstrap
GeekedOut
fonte
fonte
Respostas:
Adicione ao seu CSS:
Nos documentos do Bootstrap :
fonte
Adicionar um preenchimento como esse não é suficiente se você estiver usando o bootstrap responsivo. Nesse caso, ao redimensionar sua janela, você terá um espaço entre a parte superior da página e a barra de navegação. Uma solução adequada é assim:
fonte
No bootstrap 3, a classe em
navbar-static-top
vez denavbar-fixed-top
evitar esse problema, a menos que você precise que a barra de navegação esteja sempre visível.fonte
uma solução muito mais útil para sua referência, funciona perfeitamente em todos os meus projetos:
mude seu primeiro 'div' de
para
fonte
Estou usando o jQuery para resolver esse problema. Este é o trecho para o BS 3.0.0:
fonte
Tive um bom sucesso ao criar uma barra de navegação não fixa simulada antes da minha barra de navegação fixa real.
O espaçamento funciona muito bem em todos os tamanhos de tela.
fonte
No meu projeto derivado do tutorial do MVC 5 , descobri que alterar o preenchimento do corpo não tinha efeito. O seguinte funcionou para mim:
Resolve os casos em que a barra de navegação se dobra em 2 ou 3 linhas. Isso pode ser inserido no bootstrap.css em qualquer lugar após o corpo das linhas {margin: 0; }
fonte
O modelo inicial do bootstrap v4 css usa:
fonte
Como visto neste exemplo do Twitter, adicione-o antes da linha que inclui as declarações de estilos responsivos:
Igual a:
fonte
com navbar navbar-default tudo funciona bem, mas se você estiver usando navbar-fixed-top, precisará incluir um corpo de estilo personalizado {padding-top: 60px;} caso contrário, ele bloqueará o conteúdo abaixo.
fonte
Dois problemas acontecerão aqui:
Bootstrap 4 com links de páginas internos
Para corrigir 1), como Martijn Burger disse acima, o modelo inicial do bootstrap v4 css usa:
Para corrigir 2), verifique este problema . Esse código funciona principalmente (mas não no segundo clique do mesmo hash):
Este código anima os links A com o jQuery (não é o jQuery fino):
fonte
A melhor solução que eu encontrei até agora, que não envolve alturas de codificação e pontos de interrupção, é adicionar uma
<nav...
tag extra à marcação.Ao fazê-lo desta maneira, os
@media
pontos de interrupção são idênticos, a altura é idêntica (desde que vocênavbar-brand
seja o objeto mais alto no,navbar
mas você pode facilmente substituir outro elemento nafixed-top
barra de navegação não) .Onde isso falha é com os leitores de tela que agora apresentarão 2
navbar-brand
elementos. Isso aponta para a necessidade de umanot-for-sr
classe para impedir que esse elemento apareça para os leitores de tela. No entanto, essa classe não existe https://getbootstrap.com/docs/4.0/utilities/screenreaders/Tentei compensar o problema do leitor de tela,
aria-hidden="true"
mas https://www.accessibility-developer-guide.com/examples/sensible-aria-usage/hidden/ parece indicar que isso provavelmente não funcionará quando o leitor de tela estiver no modo de foco, que é obviamente a única vez em que você realmente precisa para funcionar ...fonte
usar
percentage
é muito melhor solução do quepixels
.Se necessário, você ainda pode ser explícito, adicionando diferentes
breakpoints
conforme mencionado em outra resposta por@spajus
fonte
EDIT: Esta solução não é viável para versões mais recentes do Bootstrap, onde as classes navbar-inverse e navbar-static-top não estão disponíveis.
Usando o MVC 5, da maneira que corrigi o meu, era simplesmente adicionar meu próprio Site.css, carregado após os outros, com a seguinte linha:
body{padding: 0}
e alterei o código no início de _Layout.cshtml, para ser:
fonte
navbar-static-top
não está definido no Bootstrap4. Não énavbar-inverse
Se sua barra de navegação estiver originalmente na parte superior da página, defina o valor como 0. Caso contrário, defina o valor para
data-offset-top
com o valor do conteúdo acima da barra de navegação.Enquanto isso, você precisa modificar o seguinte
css
:fonte
Adicione isso:
fonte
você deveria adicionar
para não destruir um rodapé pegajoso ou qualquer outra coisa
fonte
Adicione ao seu JS:
fonte
você pode definir margem com base na resolução da tela
fonte