Je construis un projet avec Bootstrap et je suis confronté à un petit problème. J'ai un conteneur sous Nav-top.Mon problème est qu'une partie de mon conteneur est cachée sous l'en-tête nav-top.Je ne veux pas utiliser top-margin avec récipient. Pls voir ci-dessous html dans lequel je suis confronté au problème
<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
la source
la source
Réponses:
Ceci est géré en ajoutant quelques-uns
padding
en haut du fichier<body>
.Selon la documentation de Bootstrap sur
.navbar-fixed-top
, essayez vos propres valeurs ou utilisez notre extrait ci-dessous. Conseil: par défaut, lenavbar
est50px
élevé.Jetez également un œil à la source de cet exemple et ouvrez
starter-template.css
.la source
Je suppose que le problème que vous rencontrez est lié à la hauteur dynamique de la barre de navigation fixe en haut. Par exemple, lorsqu'un utilisateur se connecte, vous devez afficher une sorte de " Bonjour [Nom d'utilisateur] " et lorsque le nom est trop large, la barre de navigation doit utiliser plus de hauteur pour que ce texte ne chevauche pas le menu de la barre de navigation . Comme la barre de navigation a le style « position: fixed », le corps reste en dessous et une partie plus haute de celui-ci devient cachée, vous devez donc modifier «dynamiquement» le rembourrage en haut à chaque fois que la hauteur de la barre de navigation change, ce qui se produirait dans ce qui suit scénarios de cas:
Cette dynamicité n'est pas couverte par le CSS standard, donc je ne peux penser qu'à une façon de résoudre ce problème si l'utilisateur a activé JavaScript . Veuillez essayer l' extrait de code jQuery suivant pour résoudre les scénarios de cas 1 et 2; pour le scénario 3, n'oubliez pas d'appeler la fonction onResize () après tout changement dans le contenu de la barre de navigation :
la source
Définissez simplement une barre de navigation vide avant la barre fixe, cela créera l'espace nécessaire.
la source
navbar
.Cela arrive parce qu'avec la
navbar-fixed-top
classe, la barre de navigation obtient le fichierposition:fixed
. Ceci à son tour retirer la barre de navigation du flux de documents, laissant le corps occuper l'espace derrière la barre de navigation.Vous devez postuler
padding-top
oumargin-top
à votrecontainer
, en fonction de vos exigences avec des valeurs>= 50px
. (ou jouer avec différentes valeurs)La barre de navigation de base bootstrap prend de la hauteur
40px
. Donc, si vous donnez unpadding-top
oumargin-top
sur50px
ou plus, vous aurez toujours cet espace de respiration entre votre conteneur et la barre de navigation.la source
J'ai aussi eu ce problème mais je l'ai résolu sans script et en utilisant uniquement CSS. Je commence par suivre le padding-top recommandé pour un menu fixe en définissant 60px décrit sur le site Bootstrap. Ensuite, j'ai ajouté trois balises multimédias qui redimensionnent le remplissage aux points de coupure où mon menu se redimensionne également.
Une note, lorsque la largeur de mon menu est comprise entre 768 et 991, le logo du menu dans ma mise en page plus les
<li>
options font que le menu se déroule sur deux lignes. Par conséquent, j'ai dû ajuster le padding-top pour empêcher le menu de couvrir le contenu, donc 110px.J'espère que cela t'aides...
la source
Je sais que ce fil est vieux, mais je viens de rencontrer exactement ce problème et je l'ai résolu en utilisant simplement la
page-header
classe dans ma page, sous la navigation. J'ai également utilisé la<nav>
balise au lieu de<div>
mais je ne suis pas sûr qu'elle présenterait un comportement différent.En utilisant le
page-header
comme conteneur pour la page, vous n'aurez pas besoin de jouer avec le<body>
, uniquement si vous n'êtes pas d'accord avec l'espace par défaut que lepage-header
vous donne.la source
je l'ai résolu en utilisant jquery
la source