J'ai ce code Twitter Bootstrap
<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 regarde le début de la page, la barre de navigation bloque une partie du contenu qui se trouve près du haut de la page. Une idée sur la façon de le faire baisser le reste du contenu plus bas lorsque le haut de la page est affiché afin que le contenu ne soit pas bloqué par la barre de navigation?
css
twitter-bootstrap
GeekedOut
la source
la source
Réponses:
Ajoutez à votre CSS:
Depuis les documents Bootstrap :
la source
Ajouter un rembourrage comme celui-ci ne suffit pas si vous utilisez un bootstrap réactif. Dans ce cas, lorsque vous redimensionnez votre fenêtre, vous obtiendrez un écart entre le haut de la page et la barre de navigation. Une solution appropriée ressemble à ceci:
la source
Pour bootstrap 3, la classe
navbar-static-top
au lieu denavbar-fixed-top
prévient ce problème, sauf si vous avez besoin que la barre de navigation soit toujours visible.la source
une solution beaucoup plus pratique pour votre référence, elle fonctionne parfaitement dans tous mes projets:
changer votre premier «div» de
à
la source
J'utilise jQuery pour résoudre ce problème. Voici l'extrait pour BS 3.0.0:
la source
J'ai réussi à créer une barre de navigation factice non fixe juste avant ma vraie barre de navigation fixe.
L'espacement fonctionne très bien sur toutes les tailles d'écran.
la source
Dans mon projet dérivé du tutoriel MVC 5, j'ai trouvé que changer le rembourrage du corps n'avait aucun effet. Ce qui suit a fonctionné pour moi:
Il résout les cas où la barre de navigation se replie en 2 ou 3 lignes. Cela peut être inséré dans bootstrap.css n'importe où après les lignes body {margin: 0; }
la source
Le modèle de démarrage bootstrap v4 css utilise:
la source
Comme on le voit sur cet exemple de Twitter, ajoutez ceci avant la ligne qui inclut les déclarations de styles réactifs:
Ainsi:
la source
avec navbar navbar-default, tout fonctionne bien, mais si vous utilisez navbar-fixed-top, vous devez inclure un corps de style personnalisé {padding-top: 60px;} sinon cela bloquera le contenu en dessous.
la source
Deux problèmes se produiront ici:
Bootstrap 4 avec liens vers des pages internes
Pour corriger 1), comme Martijn Burger l'a dit ci-dessus, le modèle de démarrage bootstrap v4 css utilise:
Pour résoudre 2) consultez ce problème . Ce code fonctionne principalement (mais pas au 2ème clic du même hachage):
Ce code anime des liens A avec jQuery (pas slim jQuery):
la source
La meilleure solution que j'ai trouvée jusqu'à présent, qui n'implique pas de hauteurs de codage en dur et de points d'arrêt, est d'ajouter une
<nav...
balise supplémentaire au balisage.En procédant de cette façon, les
@media
points d'arrêt sont identiques, la hauteur est identique (à condition que vous soyez l'navbar-brand
objet le plus haut dans lenavbar
mais vous pouvez facilement remplacer un autre élément dans le nonfixed-top
barre de navigation .Là où cela échoue, c'est avec les lecteurs d'écran qui présenteront désormais 2
navbar-brand
éléments. Cela indique la nécessité d'unenot-for-sr
classe pour empêcher cet élément d'apparaître pour les lecteurs d'écran. Cependant, cette classe n'existe pas https://getbootstrap.com/docs/4.0/utilities/screenreaders/J'ai essayé de compenser le problème du lecteur d'écran avec
aria-hidden="true"
mais https://www.accessibility-developer-guide.com/examples/sensible-aria-usage/hidden/ semble indiquer que cela ne fonctionnera probablement pas lorsque le lecteur d'écran est en mode focus qui est bien sûr la seule fois où vous en avez réellement besoin pour travailler ...la source
l'utilisation
percentage
est une bien meilleure solution quepixels
.Si nécessaire, vous pouvez toujours être explicite en ajoutant différents
breakpoints
comme mentionné dans une autre réponse par@spajus
la source
EDIT: Cette solution n'est pas viable pour les nouvelles versions de Bootstrap, où les classes navbar-inverse et navbar-static-top ne sont pas disponibles.
En utilisant MVC 5, la façon dont j'ai corrigé le mien, c'était simplement d'ajouter mon propre Site.css, chargé après les autres, avec la ligne suivante:
body{padding: 0}
et j'ai changé le code au début de _Layout.cshtml, pour être:
la source
navbar-static-top
n'est pas défini dans Bootstrap4. Ni l'un ni l'autrenavbar-inverse
Si votre barre de navigation se trouve à l'origine en haut de la page, définissez la valeur sur 0. Sinon, définissez la valeur de
data-offset-top
sur la valeur du contenu au-dessus de votre barre de navigation.En attendant, vous devez modifier le en
css
tant que tel:la source
Ajoute ça:
la source
vous devez ajouter
pour ne pas détruire un pied de page collant ou autre chose
la source
Ajoutez à votre JS:
la source
vous pouvez définir la marge en fonction de la résolution de l'écran
la source