J'utilise bootstrap sur mon site et j'ai des problèmes avec le haut fixe de la barre de navigation. Lorsque j'utilise simplement la barre de navigation standard, tout va bien. Cependant, lorsque j'essaie de le basculer vers le haut fixe de la barre de navigation, tous les autres contenus du site se déplacent comme si la barre de navigation n'était pas là et la barre de navigation la chevauchait. voici comment je l'ai présenté:
.navbar.navbar-fixed-top
.navbar-inner
.container
.container
.row
//yield content
j'ai essayé de copier des exemples de bootstraps exactement mais toujours avec ce problème uniquement lors de l'utilisation de la barre fixe de navbar. Qu'est-ce que je fais mal?
la source
Comme d'autres l'ont déclaré, l'ajout d'un rembourrage sur le corps fonctionne très bien. Mais lorsque vous rétrécissez l'écran (aux largeurs de téléphone portable), il y a un écart entre la barre de navigation et le corps. En outre, une barre de navigation encombrée peut se transformer en une barre multi-lignes, écrasant à nouveau une partie du contenu.
Cela a résolu ce genre de problèmes pour moi
Cela fait un rembourrage de 40 pixels par défaut et 0 pixel lorsque la largeur est inférieure à 768 pixels (ce qui, selon les documents de bootstrap, est la coupure de la disposition du téléphone portable où l'écart serait créé)
la source
body { padding-top: 40px; }
suffitune solution beaucoup plus pratique pour votre référence, elle fonctionne parfaitement dans tous mes projets:
changer votre première ligne de
à
la source
Ce problème est connu et il existe une solution de contournement sur le site d'amorçage Twitter:
Cela a fonctionné pour moi:
la source
@Ryan, vous avez raison, le codage en dur de la hauteur le fera mal fonctionner en cas de barres de navigation personnalisées. Voici le code que j'utilise avec bonheur pour BS 3.0.0:
la source
parseInt
sur les valeurs CSS de hauteur, je viens de l'utiliser$('#main-navbar').height()
, mais sinon cela a été très utile et a résolu mon problème, merci.Je mets ceci avant le conteneur de rendement:
J'aime cette approche car elle documente le hack nécessaire pour le faire fonctionner, et elle fonctionne également pour la navigation mobile.
EDIT - cela fonctionne beaucoup mieux:
la source
Le problème est avec navbar-fixed-top, qui superposera votre contenu à moins de spécifier un rembourrage corporel. Aucune solution fournie ici ne fonctionne dans 100% des cas. La solution JQuery clignote / décale la page après son chargement, ce qui semble étrange.
La vraie solution pour moi n'est pas d'utiliser navbar-fixed-top, mais navbar-static-top.
la source
Comme je l'ai posté dans une question similaire, j'ai réussi à créer une barre de navigation factice non fixe juste avant ma vraie barre de navigation fixe.
L'espacement fonctionne parfaitement sur toutes les tailles d'écran.
la source
La solution pour Bootstrap 4, elle fonctionne parfaitement dans tous mes projets:
changer votre première ligne de
à
Référence de la documentation de bootstrap
Il était temps qu'ils fassent cela correctement: D
la source
Toutes les solutions précédentes codent en dur 40 pixels spécifiquement dans le html ou le CSS d'une manière ou d'une autre. Que faire si la barre de navigation contient une taille de police ou une image différente? Et si j'ai une bonne raison de ne pas jouer avec le rembourrage corporel en premier lieu? Je cherchais une solution à ce problème, et voici ce que j'ai trouvé:
Vous pouvez le déplacer vers le haut ou vers le bas en ajustant le «1». Cela semble fonctionner pour moi indépendamment de la taille du contenu dans la barre de navigation, avant et après le redimensionnement.
Je suis curieux de savoir ce que les autres en pensent: veuillez partager vos réflexions. (Il sera refactorisé pour ne pas se répéter, btw.) Outre l'utilisation de jQuery, y a-t-il d'autres raisons de ne pas aborder le problème de cette façon? Je l'ai même fait fonctionner avec une barre de navigation secondaire comme celle-ci:
PS: Ci-dessus est sur Bootstrap 2.3.2 - cela fonctionnera-t-il en 3.x Tant que les noms de classe génériques resteront ... en fait, cela devrait fonctionner indépendamment du bootstrap, non?
EDIT: Voici une fonction jquery complète qui gère deux barres de navigation fixes empilées et réactives de taille dynamique. Il nécessite 3 classes html (ou pourrait utiliser des identifiants): user-top, admin-top et contentwrap:
la source
Changez
fixed-top
avecsticky-top
. De cette façon, vous n'aurez pas à calculer le rembourrage.Et il fonctionne!!
la source
Pour gérer les lignes d'habillage dans la barre de menus, appliquez un identifiant à la barre de navigation, comme ceci:
et ajoutez ce petit script dans la tête après avoir inclus le jquery, comme ceci:
De cette façon, le rembourrage supérieur du corps est automatiquement ajusté.
la source
pour Bootstrap 3. +, j'utiliserais le CSS suivant pour corriger navbar-fixed-top et le problème de chevauchement de saut d'ancrage basé sur https://github.com/twbs/bootstrap/issues/1768
la source
utiliser cette classe à l'intérieur de la balise nav
Pour bootstrap 4
la source
Tout ce que tu dois faire est
la source
Suite à la réponse de Nick Bisby, si vous rencontrez ce problème en utilisant HAML dans les rails et que vous avez appliqué le correctif de Roberto Barros ici:
(Voir https://github.com/seyhunak/twitter-bootstrap-rails/issues/91 )
... vous devez mettre le corps CSS avant l'instruction require comme suit:
Si l'instruction require se trouve avant le corps CSS, elle ne prendra pas effet.
la source
Je ferais ceci:
Cela devrait garantir que le bloc de navigation ne s'étire pas vers le bas et couvre le contenu de la page.
la source
Je viens d'emballer la barre de navigation dans un
Pas de pocus fantaisie mais ça a marché ..
la source
nav-? ??
représente?