Ich verwende Bootstrap auf meiner Website und habe Probleme mit der festen Navigationsleiste. Wenn ich nur die normale Navigationsleiste verwende, ist alles in Ordnung. Wenn ich jedoch versuche, es auf Navbar Fixed Top umzuschalten, verschiebt sich der gesamte andere Inhalt der Site nach oben, als ob die Navbar nicht vorhanden wäre und die Navbar sie überlappt. Hier ist im Grunde, wie ich es ausgelegt habe:
.navbar.navbar-fixed-top
.navbar-inner
.container
.container
.row
//yield content
Ich habe versucht, Bootstraps-Beispiele genau zu kopieren, hatte aber immer noch dieses Problem nur, wenn ich die feste Navigationsleiste oben verwendete. Was mache ich falsch?
quelle
Wie andere bereits gesagt haben, funktioniert das Hinzufügen eines Polsteroberteils zum Körper hervorragend. Wenn Sie den Bildschirm jedoch schmaler machen (auf die Breite des Mobiltelefons), entsteht eine Lücke zwischen der Navigationsleiste und dem Körper. Eine überfüllte Navigationsleiste kann auch in eine mehrzeilige Leiste umgewandelt werden, wodurch ein Teil des Inhalts erneut überschrieben wird.
Dies löste diese Art von Problemen für mich
Dies führt standardmäßig zu einer Auffüllung von 40 Pixel und einer Auffüllung von 0 Pixel bei einer Breite von weniger als 768 Pixel (was laut Bootstrap-Dokumenten der Grenzwert für das Layout des Mobiltelefons ist, an dem die Lücke entstehen würde)
quelle
body { padding-top: 40px; }
ist genugEine viel praktischere Lösung für Ihre Referenz. Sie funktioniert perfekt in allen meinen Projekten:
Ändern Sie Ihre erste Zeile von
zu
quelle
Dieses Problem ist bekannt und es gibt eine Problemumgehung auf der Twitter-Bootstrap-Site:
Das hat bei mir funktioniert:
quelle
@ Ryan, Sie haben Recht, wenn Sie die Höhe hart codieren, funktioniert dies bei benutzerdefinierten Navigationsleisten schlecht. Dies ist der Code, den ich gerne für BS 3.0.0 verwende:
quelle
parseInt
die CSS-Werte für height zu verwenden, habe ich nur verwendet$('#main-navbar').height()
, aber ansonsten war dies sehr hilfreich und hat mein Problem gelöst, danke.Ich stelle dies vor den Ertragsbehälter:
Ich mag diesen Ansatz, weil er den Hack dokumentiert, der erforderlich ist, damit er funktioniert, und auch für das mobile Navigationssystem.
BEARBEITEN - das funktioniert viel besser:
quelle
Das Problem liegt bei navbar-fixed-top, das Ihren Inhalt überlagert, sofern nicht das Body-Padding angegeben wird. Keine hier bereitgestellte Lösung funktioniert in 100% der Fälle. Die JQuery-Lösung blinkt / verschiebt die Seite, nachdem die Seite geladen wurde, was seltsam aussieht.
Die wirkliche Lösung für mich ist nicht, Navbar-Fixed-Top zu verwenden, sondern Navbar-Static-Top.
quelle
Wie ich in einer ähnlichen Frage gepostet habe, hatte ich gute Erfolge beim Erstellen einer nicht festen Dummy-Navigationsleiste direkt vor meiner echten festen Navigationsleiste.
Der Abstand funktioniert bei allen Bildschirmgrößen hervorragend.
quelle
Die Lösung für Bootstrap 4 funktioniert perfekt in allen meinen Projekten:
Ändern Sie Ihre erste Zeile von
zu
Referenz zur Bootstrap-Dokumentation
Mit der Zeit haben sie das richtig gemacht: D.
quelle
Alle vorherigen Lösungen codieren 40 Pixel auf die eine oder andere Weise spezifisch in HTML oder CSS. Was ist, wenn die Navigationsleiste eine andere Schriftgröße oder ein anderes Bild enthält? Was ist, wenn ich einen guten Grund habe, mich überhaupt nicht mit der Körperpolsterung herumzuschlagen? Ich habe nach einer Lösung für dieses Problem gesucht, und hier ist, was ich mir ausgedacht habe:
Sie können es nach oben oder unten bewegen, indem Sie die '1' einstellen. Es scheint für mich unabhängig von der Größe des Inhalts in der Navigationsleiste vor und nach der Größenänderung zu funktionieren.
Ich bin gespannt, was andere darüber denken: Bitte teilen Sie Ihre Gedanken mit. (Es wird übrigens überarbeitet, um nicht zu wiederholen.) Gibt es neben der Verwendung von jQuery noch andere Gründe, das Problem nicht auf diese Weise anzugehen? Ich habe es sogar mit einer sekundären Navigationsleiste wie dieser zum Laufen gebracht:
PS: Oben ist Bootstrap 2.3.2 - funktioniert es in 3.x Solange die generischen Klassennamen erhalten bleiben ... sollte es tatsächlich unabhängig von Bootstrap funktionieren, oder?
BEARBEITEN: Hier ist eine vollständige Abfragefunktion, die zwei gestapelte, reaktionsschnelle feste Navigationsleisten mit dynamischer Größe verarbeitet. Es erfordert 3 HTML-Klassen (oder könnte IDs verwenden): user-top, admin-top und contentwrap:
quelle
Wechseln Sie einfach
fixed-top
mitsticky-top
. Auf diese Weise müssen Sie die Polsterung nicht berechnen.Und es funktioniert!!
quelle
Wenden Sie zum Behandeln von Zeilenumbrüchen in der Menüleiste eine ID wie folgt auf die Navigationsleiste an:
und fügen Sie dieses kleine Skript in den Kopf ein, nachdem Sie die Abfrage wie folgt eingefügt haben:
Auf diese Weise wird die obere Polsterung des Körpers automatisch angepasst.
quelle
Für Bootstrap 3. + würde ich folgendes CSS verwenden, um das Problem mit der Überlappung von Navbar-Fixed-Top und Ankersprung basierend auf https://github.com/twbs/bootstrap/issues/1768 zu beheben
quelle
Verwenden Sie diese Klasse im Navi-Tag
Für Bootstrap 4
quelle
Alles was du tun musst, ist
quelle
Neben der Antwort von Nick Bisby, wenn Sie dieses Problem mit HAML in Schienen haben und Roberto Barros 'Fix hier angewendet haben:
(Siehe https://github.com/seyhunak/twitter-bootstrap-rails/issues/91 )
... Sie müssen das Body-CSS wie folgt vor die require-Anweisung stellen:
Wenn sich die require-Anweisung vor dem Body-CSS befindet, wird sie nicht wirksam.
quelle
Ich würde das tun:
Dies sollte sicherstellen, dass der Navigationsblock die Downpage nicht streckt und den Seiteninhalt abdeckt.
quelle
Ich habe gerade die Navigationsleiste in eine eingewickelt
Kein ausgefallener Hokuspokus, aber es hat funktioniert.
quelle
nav-? ??
?