Ich verwende Twitter Bootstrap 2.0.1 in einem Rails 3.1.2-Projekt, das mit bootstrap-sass implementiert wurde. Ich lade sowohl die bootstrap.css
als auch die bootstrap-responsive.css
Dateien sowie das bootstrap-collapse.js
Javascript.
Ich habe ein flüssiges Layout mit einer Navigationsleiste ähnlich dem Beispiel . Dies folgt der navbar „responsive Variation“ Anweisungen hier . Es funktioniert einwandfrei: Wenn die Seite schmaler als etwa 940 Pixel ist, wird die Navigationsleiste ausgeblendet und eine "Schaltfläche" angezeigt, auf die ich klicken kann, um sie zu erweitern.
Meine Navigationsleiste sieht jedoch bis zu einer Breite von etwa 550 Pixel gut aus, dh sie muss nicht reduziert werden, es sei denn, der Bildschirm ist sehr schmal.
Wie kann ich Bootstrap anweisen, die Navigationsleiste nur zu reduzieren, wenn der Bildschirm weniger als 550 Pixel breit ist?
Beachten Sie, dass ich an dieser Stelle die anderen Reaktionsverhaltensweisen nicht ändern möchte, z. B. das Stapeln von Elementen, anstatt sie nebeneinander anzuzeigen.
quelle
Antworten:
Sie suchen nach Zeile 239 von
bootstrap-responsive.css
Wo der
max-width
Wert das reaktionsfähige Navi auslöst. Ändern Sie es auf 550px oder so und es sollte die Größe ändern.quelle
bootstrap-responsive.css
ist im Bootstrap-Sass-Juwel begraben. Ja, ich könnte es bearbeiten, aber wenn der Edelstein aktualisiert wird, müsste ich es erneut tun. Gibt es eine Möglichkeit, die @ media-Abfrage zu überschreiben, ähnlich wie beim Überschreiben anderer CSS-Elemente?@media (max-width: 767px)
Block. Sieht so aus, als müsste ich eine umfassendere Überschreibung vornehmen, wie in Andres Ilichs Antwort vorgeschlagen.@media (max-width: 767px)
. Hoffentlich wird Bootstrap (oder Bootstrap-Sass) eines Tages ein Mittel enthalten, um Variablen zum Festlegen der Schwellenwerte zu verwenden, aber ich denke, dass dies eine Interpolation in Medienselektoren erfordert .Bootstrap> 2.1 && <3
Update 2013: Der einfache Weg
(THX an Archonic per Kommentar)
Update 2014: Bootstrap 3.1.1 und 3.2 (sie haben es sogar zur Dokumentation hinzugefügt )
Wenn Sie Variablen anpassen oder überschreiben / bearbeiten
.less
, suchen Sie nach:quelle
@navbarCollapseWidth: 600px;
in boostrap_and_overrides.css.less einfügen.Sie können eine neue
@media
Abfrage einrichten, um die Navigationsleistenelemente nach Belieben abzulegen. Sie müssen lediglich die erstere zurücksetzen, um Ihre neue Abfrage mit der gewünschten Ablagebreite aufzunehmen. Nehmen Sie zum Beispiel:CSS
Im folgenden Code können Sie sehen, wie ich die ursprüngliche
@media
Abfrage, die den Abwurf vor der979px
Markierung behandelt, und die neue Abfrage aufgenommen habe, um Ihren gewünschten Ablagepunkt von zu unterstützen550px
. Ich habe die ursprüngliche Abfrage direkt aus dem auf Bootstrap reagierenden CSS geändert, um alle Stile zurückzusetzen, die auf diese bestimmte Abfrage für die Navigationsleistenelemente angewendet wurden, und sie auf die neue Abfrage portiert, die stattdessen den gewünschten Ablagepunkt enthält. Auf diese Weise können wir alle Stile von der ursprünglichen Abfrage bis zur neuen Abfrage umwandeln, ohne im auf Bootstrap reagierenden Stylesheet herumzuspielen. Auf diese Weise gelten die Standardwerte weiterhin für die anderen Elemente in Ihrem Dokument.Hier ist eine kurze Demo mit einer Medienabfrage, die bei Bedarf abgelegt werden
550px
kann: http://jsfiddle.net/wU8MW/Hinweis: Ich habe die oben geänderten
@media
Abfragen weit unterhalb des CSS-Frames platziert, da das neue geänderte CSS zuerst als das reaktionsfähige CSS geladen werden soll.quelle
@media (max-width: 979px)
Abfrage geklont , um die neue@media (max-width: 550px)
Abfrage durchzuführen. Dann (2) haben Sie eine neue 979px-Abfrage von Hand codiert, um die Auswirkungen der 979px-Abfrage im Wesentlichen zu überschreibenbootstrap-responsive.css
? Die Reihenfolge der Tags in Ihrem CSS scheint nicht der Reihenfolge in zu folgenbootstrap-responsive.css
, daher habe ich Schwierigkeiten, sie zu vergleichen, um zu sehen, was Sie getan haben.@media (max-width: 550px)
Abfrage, die ich geschrieben habe, folgt nicht der anfänglichen Abfragesyntax,@media (max-width: 979px)
da alles, was ich getan habe, ein kurzes Beispiel war, das von Hand durch Firebug und Kopieren / Einfügen überschrieben wurde Punkt.bootstrap-sass unterstützt die Variable $ navbarCollapseWidth in der nächsten Version (2.2.1.0). Sie können es aktualisieren, um genau das zu tun, was Sie wollen, sobald diese Version live ist!
quelle
@import "bootstrap";
Ab August 2013 finden Sie eine Bootstrap 3-Seite "Anpassen und Herunterladen" unter http://getbootstrap.com/customize/.
Bei Bootstrap 3 ist die relevante Variable @ grid-float-breakpoint.
Die folgende Stapelüberlaufseite enthält zusätzliche Details: Bootstrap 3 Navbar Collapse
quelle
Ich vermute (und hoffe), dass dies bald offiziell umgesetzt wird. In der Zwischenzeit mache ich nur einen einfachen CSS-Hack, indem ich das sichtbare Telefon auf der Dropdown-Schaltfläche und das sichtbare Tablet auf einem zweiten Satz von Schaltflächen verwende, die ich in der Navigationsleiste platziert habe. Also bevor es so aussah:
Und jetzt sieht es so aus:
Beachten Sie, dass die Reihenfolge der Elemente wichtig ist. Andernfalls können Probleme mit Elementen auftreten, die in die nächste Zeile aufgenommen werden
quelle
Ich habe eine separate SCSS-Datei erstellt, in der alle Partials aufgelistet sind, die Bootstrap benötigt. Auf diese Weise kann ich die Partials je nach den Anforderungen unserer Site ein- und ausschalten. Auf diese Weise kann ich die Haltepunktvariable leicht überschreiben. Folgendes habe ich bekommen:
quelle
Hier ist mein Code (Alle anderen Lösungen zeigten eine funky Bildlaufleiste, als die Navigationsleiste herunterfiel und ich den Code so bearbeitete, dass dies nicht der Fall war). Ich konnte keine andere Antwort posten, also werde ich es hier tun, damit andere es finden. Ich benutze Schienen, um dies mit Bootstrap 3.0 zu tun.
Assets / Stylesheets / Framework und Overrides fügen Folgendes ein: (Passen Sie die maximale Breite an einen beliebigen Wert an, um Ihr Ziel zu erreichen.)
quelle
Bootstrap 3.x.
Mit WENIGER können Sie den Wert von ändern
@screen-small
, um Ihre Mindestgröße zu bestimmenBeispiel:
@screen-small: 600px;
Ich benutze dies, um nur in den "winzigen Gerät" -Modus zu wechseln, wenn die Breite weniger als 600px beträgt
quelle
Bootstrap 3.x.
Mit SASS können Sie den Wert von $ screen-sm ändern, um Ihre Mindestgröße festzulegen
Beispiel: $ screen-sm: 600px;
Sie müssen diesen Wert vor dem @import "bootstrap" in Ihre application.scss-Datei einfügen.
Weniger Variablen beginnen mit "@" und wurden nur in "$" geändert, um sie vor dem Import zu überschreiben.
Hier ist die Liste der Variablen.
quelle
Bootstrap 4.x.
Das Ändern des Kollapsschwellenwerts in Bootstrap 4.x ist ein Kinderspiel. Es gibt 6 Fälle:
<nav class="navbar navbar-expand">...</nav>
<nav class="navbar navbar-expand-sm">...</nav>
<nav class="navbar navbar-expand-md">...</nav>
<nav class="navbar navbar-expand-lg">...</nav>
<nav class="navbar navbar-expand-xl">.../nav>
<nav class="navbar">...</nav>
(Entfernen Sie einfach dienavbar-expand-*
Klasse. Mobile-first wie in Bootstrap 4.x)Dank für diesen Artikel von Carol Skelly fand ich https://medium.com/wdstack/examples-bootstrap-4-navbar-b3c9dc0edc1a
quelle
Dies ist ein großartiges Beispiel dafür, wo Sie die WENIGER-Version der Bootstrap-CSS-Dateien verwenden könnten. Wie das geht, erfahren Sie weiter unten.
Noch besser wäre es, dies als Pull-Anfrage an Github zu senden, damit jeder davon profitieren kann und Ihr "benutzerdefinierter Code" hoffentlich Teil von Bootstrap sein wird.
variables.less
die angibt, wann die Navigationsleiste ausgeblendet werden soll. Etwas wie:@navCollapseWidth: 979px
responsive-navbar.less
...@media (max-width: 979px)
zu@media (max-width: @navCollapseWidth)
@media (min-width: 980px)
zu@media (max-width: @navCollapseWidth - 1)
Natürlich ... müssten Sie WENIGER mit einer der vorgeschlagenen Methoden kompilieren .
quelle
Wenn Sie Tyler's Hack noch weiter vorantreiben, indem Sie einem Element in der zusammenklappbaren Hauptnavigation einen Block mit sichtbarer Telefonklasse und eine Klasse mit versteckten Telefonen hinzufügen , können Sie ein oder zwei der reduzierten Elemente herausziehen, um sie sogar in der Navigationsleiste des Telefons anzuzeigen.
quelle
Schreiben Sie diesen Code einfach in Ihre benutzerdefinierte style.css-Datei und es wird funktionieren
quelle