Eu estou construindo um projeto com o Bootstrap e estou enfrentando pouco problema. Tenho um contêiner abaixo do Nav-top. Meu problema é que parte do meu contêiner está oculta abaixo do cabeçalho nav-top. Não quero usar a margem superior com recipiente. Pls veja abaixo o html no qual estou enfrentando o problema
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link rel="stylesheet" href="~/stylesheets/bootstrap.css"/>
<link rel="stylesheet" href="~/stylesheets/bootstrap-responsive.css"/>
</head>
<body>
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<div class="container">
<button data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar collapsed" type="button">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="nav-collapse"><ul class="nav" id="navbar"><li ng-class="{active:section=='plunks'}" class="active"><a href="/plunks/trending"><i class="icon-home"></i>Home</a></li><li><a target="_self" href="/edit/"><i class="icon-calendar"></i>General Election 2014</a></li><li class="divider-vertical">
</li><li class="dropdown"><a class="dropdown-toggle" href="#" data-toggle="dropdown">
<i class="icon-eye-open">
</i>Assembly Elections
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#/HTML5Apps">Assembly Elections 2013</a></li>
</ul>
</li><li class="divider-vertical">
</li><li ng-class="{active:section=='tags'}"><a href="/tags"><i class="icon-th"></i>Constituecy</a></li><li ng-class="{active:section=='discuss'}"><a href="/discuss"><i class="icon-time"></i>Election News</a></li><li class="divider-vertical"></li><li><a href="https://github.com/filearts/plunker"><i class="icon-bell"></i>Candidate</a></li></ul></div>
</div>
</div>
</div>
<div class="container" >
<ul class="nav nav-pills">
<li class="active">
<a href="#">Popular</a>
</li>
<li><a href="#">Trending</a></li>
<li><a href="#">Latest</a></li>
</ul>
</div>
<script src="~/Scripts/jquery.js"></script>
<script src="~/Scripts/bootstrap-dropdown.js"></script>
<script src="~/Scripts/Collapse.js"></script>
</body>
</html>
css
twitter-bootstrap
Ajay Beniwal
fonte
fonte
Respostas:
Isso é tratado adicionando alguns
padding
ao topo do<body>
.De acordo com a documentação do Bootstrap
.navbar-fixed-top
, experimente seus próprios valores ou use nosso snippet abaixo. Dica: Por padrão, o valornavbar
é50px
alto.Além disso, dê uma olhada na fonte deste exemplo e abra
starter-template.css
.fonte
Eu acho que o problema que você tem está relacionado à altura dinâmica que a barra de navegação fixa na parte superior tem. Por exemplo, quando um usuário faz login, você precisa exibir algum tipo de " Olá [Nome do Usuário] " e, quando o nome é muito amplo, a barra de navegação precisa usar mais altura para que esse texto não se sobreponha ao menu da barra de navegação . Como a barra de navegação tem o estilo " position: fixed ", o corpo fica embaixo dela e uma parte mais alta fica oculta; portanto, você precisa "dinamicamente" alterar o preenchimento na parte superior sempre que a altura da barra de navegação mudar, o que aconteceria a seguir cenários de caso:
Essa dinamicidade não é coberta pelo CSS comum, portanto, só posso pensar em uma maneira de resolver esse problema se o usuário tiver o JavaScript ativado. Por favor, tente o seguinte trecho de código jQuery para resolver os cenários de caso 1 e 2; para o cenário do caso 3, lembre-se de chamar a função onResize () após qualquer alteração no conteúdo da barra de navegação :
fonte
Basta definir uma barra de navegação vazia antes da fixa, ela criará o espaço necessário.
fonte
navbar
faz.Isso acontece porque com a
navbar-fixed-top
classe a barra de navegação recebe oposition:fixed
. Por sua vez, retira a barra de navegação do fluxo de documentos, deixando o corpo para ocupar o espaço atrás da barra de navegação.Você precisa aplicar
padding-top
oumargin-top
ao seucontainer
, com base em seus requisitos com valores>= 50px
. (ou brinque com valores diferentes)A barra de navegação de inicialização básica leva em torno de altura
40px
. Então, se você dá umpadding-top
oumargin-top
de50px
ou mais, você sempre terá que espaço para respirar entre o recipiente e barra de navegação.fonte
Eu também tive esse problema, mas o resolvi sem script e usando apenas CSS. Começo seguindo o padding top recomendado para um menu fixo, definindo 60px descrito no site do Bootstrap. Em seguida, adicionei três tags de mídia que redimensionam o preenchimento nos pontos de corte em que meu menu também é redimensionado.
Uma observação: quando a largura do meu menu está entre 768 e 991, o logotipo do menu no meu layout mais o
<li>
opções fazem com que o menu seja dividido em duas linhas. Portanto, eu tive que ajustar a parte superior do estofamento para impedir que o menu cubra o conteúdo, portanto 110 pixels.Espero que isto ajude...
fonte
Eu sei que esse tópico é antigo, mas acabei de entrar nesse problema exatamente e o corrigi usando a
page-header
classe na minha página, sob a navegação. Também eu usei a<nav>
tag em vez de<div>
mas não tenho certeza se ela apresentaria algum comportamento diferente.Usando o
page-header
como um contêiner para a página, você não precisará mexer com o<body>
, apenas se não concordar com o espaço padrãopage-header
fornecido.fonte
eu resolvi usando jquery
fonte