en haut de la barre de navigation de blocage en haut du contenu de la page
J'ai ce Twitter Bootstrap code
<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>
Mais lorsque je visualise le début de la page, la barre de navigation est le blocage d'une partie du contenu qui est en haut de la page. Aucune idée de comment faire pousser vers le bas le reste du contenu plus faible lorsque le haut de la page est affichée, afin que le contenu n'est pas bloqué par la barre de navigation?
- double possible de twitter bootstrap barre de navigation supérieure fixe qui se chevauchent site
- Cette question a été publié plus tard.
Vous devez vous connecter pour publier un commentaire.
Ajouter à votre CSS:
De la Bootstrap docs:
L'ajout d'un rembourrage comme cela n'est pas suffisant si vous êtes en responsive bootstrap. Dans ce cas, lorsque vous redimensionnez votre fenêtre vous pouvez obtenir un écart entre le haut de la page et la barre de navigation. Une bonne solution ressemble à ceci:
<style>body {padding-top: 60px;}</style>
est nécessaire, en supposant que vous vous placez ce code avant d'inclure la feuille de style pour le responsive design. Exemple (voir code source) twitter.github.io/bootstrap/examples/fluid.html - PS. Comme vous l'aurez deviné, cette déclaration dans la requête de média est déjà présent dans le réactif de la feuille de style.Pour bootstrap 3, la classe
navbar-static-top
au lieu denavbar-fixed-top
empêche ce problème, sauf si vous avez besoin de la barre de navigation pour toujours être visible.beaucoup plus pratique pour votre référence, il fonctionne parfaitement dans tous mes projets:
changer votre premier " div " de
à
J'utilise jQuery pour résoudre ce problème. C'est l'extrait de code pour BS 3.0.0:
J'ai eu un bon succès avec la création d'un mannequin non-correction de la barre de navigation à droite avant mon fixe la barre de navigation.
L'espacement fonctionne sur tous les formats d'écran.
Dans mon projet dérivé de la MVC 5 tutoriel j'ai trouvé que le fait de changer le corps de rembourrage a eu aucun effet. Le suivant a fonctionné pour moi:
Il résout le cas où la barre de navigation se plie en 2 ou 3 lignes. Cela peut être inséré dans le bootstrap.css n'importe où après les lignes
body {
margin: 0;
}
Le bootstrap v4 modèle de démarrage css utilise:
Comme on le voit sur cet exemple de Twitter, ajouter avant la ligne qui inclut le réactif de styles de déclarations:
Comme suit:
avec navbar navbar-par défaut tout fonctionne bien, mais si vous utilisez navbar-fixed-top, vous devez inclure le style personnalisé body { padding-top: 60px;} sinon il va bloquer le contenu en dessous.
à l'aide de
percentage
est bien meilleure solution quepixels
.Si nécessaire, vous pouvez toujours être explicite par l'ajout de différents
breakpoints
comme mentionné dans une autre réponse par@spajus
Deux problèmes vont se passer ici:
Bootstrap 4 w/les liens des pages internes
À fixer 1), Martijn Burger dit ci-dessus, le bootstrap v4 modèle de démarrage css utilise:
De fixer 2) découvrez ce problème. Ce code fonctionne majoritairement (mais pas sur le 2ème clic de même hash):
Ce code anime Un liens avec jQuery (pas slim jQuery):
EDIT: Cette solution n'est pas viable pour les versions plus récentes de Bootstrap, où la navbar-inverse et navbar-statique-dessus des classes ne sont pas disponibles.
En utilisant MVC 5, la façon dont je fixe la mienne, était tout simplement ajouter mon propre Site.css, chargé après les autres, avec la ligne suivante:
body{padding: 0}
et j'ai modifié le code en début de _Layout.cshtml, à:
navbar-static-top
n'est pas défini dans Bootstrap4. Ni estnavbar-inverse
vous devez ajouter
pour ne pas détruire un collant, pied de page ou quelque chose d'autre
Si votre barre de navigation est en haut de la page à l'origine, définissez la valeur sur 0. Sinon, définissez la valeur pour
data-offset-top
à la valeur du contenu au-dessus de votre barre de navigation.En attendant, vous devez modifier le
css
en tant que tel:La meilleure solution que j'ai trouvé jusqu'à présent, qui ne nécessite pas de codage en dur des hauteurs et des points d'arrêt est d'ajouter un supplément de
<nav...
balise pour le balisage.En le faisant de cette manière, le
@media
les points d'arrêt sont identiques, la hauteur est identique (à condition que votrenavbar-brand
est l'objet le plus haut dans lenavbar
mais vous pouvez facilement le remplacer par un autre élément dans le nonfixed-top
navbar.En cas d'échec est avec les lecteurs d'écran qui va maintenant présenter 2
navbar-brand
éléments. Cela souligne la nécessité pour unnot-for-sr
classe pour empêcher que l'élément de montrer aux lecteurs d'écran. Cependant, cette classe n'existe pas https://getbootstrap.com/docs/4.0/utilities/screenreaders/J'ai essayé de compenser pour le lecteur d'écran d'un problème avec
aria-hidden="true"
mais https://www.accessibility-developer-guide.com/examples/sensible-aria-usage/hidden/ semble indiquer ce ne sera probablement pas fonctionner lorsque le lecteur d'écran est en mode de mise au point qui est bien sûr le seul moment où vous en avez besoin pour travailler...Ajouter à votre JS:
vous pouvez définir la marge fondée sur la résolution de l'écran