Ich versuche , zweispaltige zu machen mit voller Bauhöhe Layout mit Twitter Bootstrap 3. Es scheint , dass Twitter Bootstrap - 3 nicht die volle Höhe Layouts unterstützen. Was ich machen will; was ich vorhabe zu tun:
+-------------------------------------------------+
| Header |
+------------+------------------------------------+
| | |
| | |
|Navigation | Content |
| | |
| | |
| | |
| | |
| | |
| | |
+------------+------------------------------------+
Wenn der Inhalt wächst, sollte auch das Navi wachsen.
- Die Höhe 100% für jedes Elternteil funktioniert nicht, da der Inhalt nur eine Zeile enthält.
- Position absolut scheint der falsche Weg zu sein
display: table
unddisplay:table-cell
lösen Sie das Problem, aber es ist nicht elegant
html:
<div class="container">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-9"></div>
</div>
</div>
Gibt es eine Möglichkeit, es mit Standard- Twitter-Bootstrap-3- Klassen zu schaffen?
html
css
twitter-bootstrap
uladzimir
quelle
quelle
Antworten:
Edit: In Bootstrap 4 , nativen Klassen können in voller Höhe Spalten (produzieren DEMO ) , weil sie verändert ihre Grid - System zu Flexbox. (Lesen Sie weiter für Bootstrap 3)
Die nativen Bootstrap 3.0-Klassen unterstützen das von Ihnen beschriebene Layout nicht. Wir können jedoch einige benutzerdefinierte CSS- Programme integrieren, die CSS- Tabellen verwenden , um dies zu erreichen.
Bootply-Demo / Codepen
Markup:
(Relevantes) CSS
Mit dem obigen Code werden Spalten mit voller Höhe (aufgrund der von uns hinzugefügten benutzerdefinierten CSS-Tabelleneigenschaften) und mit einem Verhältnis von 1: 3 (Navigation: Inhalt) für mittlere Bildschirmbreiten und höher (aufgrund der Standardklassen von Bootstrap: col-md) erreicht -3 und col-md-9)
NB:
1) Um die nativen Spaltenklassen von Bootstrap nicht durcheinander zu bringen, fügen wir eine weitere Klasse wie
no-float
im Markup hinzu und setzendisplay:table-cell
undfloat:none
auf diese Klasse (wie es für die Spaltenklassen selbst gilt).2) Wenn wir den CSS-Tabellencode nur für einen bestimmten Haltepunkt (z. B. mittlere Bildschirmbreiten und höher) verwenden möchten, aber für mobile Bildschirme standardmäßig das übliche Bootstrap-Verhalten verwenden möchten, können wir unser benutzerdefiniertes CSS in a umschließen Medienabfrage, sagen wir:
Codepen-Demo
Bei kleineren Bildschirmen verhalten sich die Spalten nun wie Standard-Bootstrap-Spalten (jede erhält die volle Breite).
3) Wenn das Verhältnis 1: 3 für alle Bildschirmbreiten erforderlich ist, ist es wahrscheinlich besser, die col-md- * -Klassen von bootstrap aus dem Markup zu entfernen, da sie nicht so verwendet werden sollen.
Codepen-Demo
quelle
Sie können mit dem
padding-bottom: 100%; margin-bottom: -100%;
Trick erreichen, was Sie wollen , haben Sie in dieser Geige zu sehen.Ich ändere Ihren HTML-Code ein wenig, aber Sie können das gleiche Ergebnis mit Ihrem eigenen HTML-Code mit dem folgenden Code erzielen
quelle
Reine CSS-Lösung
Geige arbeiten
Arbeiten Sie nur mit CSS2.1 mit allen Browsern (IE8 +), ohne Höhe oder Breite anzugeben.
Das heißt, wenn Ihr Header plötzlich länger wird oder Ihre linke Navigation vergrößert werden muss, müssen Sie nichts in Ihrem CSS korrigieren.
Völlig reaktionsschnell, einfach und klar und sehr einfach zu verwalten.
Erläuterung: Der Container
div
nimmt eine Körpergröße von 100% ein und ist in zwei Abschnitte unterteilt. Der Header-Bereich wird auf die erforderliche Höhe gespannt, undHeightTaker
der Rest wird übernommen. Wie wird es erreicht? indem Sie ein leeres Element mit 100% Höhe neben den Container schweben lassen (using:before
) undHeightTaker
am Ende ein leeres Element mit der Clear-Regel geben (using:after
). Dieses Element kann nicht in der gleichen Linie wie das schwebende Element sein, also wird er bis zum Ende gedrückt. Das ist genau die 100% des Dokuments.Damit machen wir die
HeightTaker
Spannweite zum Rest der Containerhöhe, ohne eine bestimmte Höhe / einen bestimmten Rand anzugeben.Darin
HeightTaker
erstellen wir ein normales schwebendes Layout (um die spaltenartige Anzeige zu erreichen) mit einer geringfügigen Änderung. Wir haben einWrapper
Element, das benötigt wird, damit die100%
Höhe funktioniert.Aktualisieren
Hier ist die Demo mit Bootstrap-Klassen. (Ich habe gerade ein Div zu Ihrem Layout hinzugefügt)
quelle
Ich dachte über eine subtile Änderung nach, die das Standard-Bootstrap-Verhalten nicht ändert. Und ich kann es nur verwenden, wenn ich es brauchte:
so kann ich es so verwenden:
quelle
Meines Wissens können Sie bis zu 5 Methoden verwenden, um dies zu erreichen:
Bootstrap: Ich habe nicht viel Erfahrung damit, aber ich glaube nicht, dass sie dafür Stile bieten.
quelle
Moderne und sehr einfache Lösung:
HTML:
CSS:
quelle
Eine reine CSS-Lösung ist einfach genug und funktioniert wie ein Charm Cross Browser.
Sie fügen den Navigations- und Inhaltsspalten einfach einen großen Abstand und einen ebenso großen negativen Rand hinzu und wickeln dann ihre Zeile in eine Klasse mit ausgeblendetem Überlauf ein.
Live-Ansicht Ansicht
bearbeiten
HTML
CSS
Viel Glück!
quelle
Die Lösung kann auf zwei Arten erreicht werden
Die Klassen, die zum Abrufen der obigen Lösung verwendet werden, werden in Bootstrap 3 nicht bereitgestellt. Display: table und display: table-cell werden angegeben, sondern nur, wenn Tabellen in HTML verwendet werden. Negative Margin- und Padding-Klassen gibt es ebenfalls nicht.
Daher müssen wir benutzerdefinierte CSS verwenden, um dies zu erreichen.
Das Folgende ist die erste Lösung
HTML Quelltext:
das entsprechende css:
Das Folgende ist die zweite Lösung
HTML Quelltext:
das entsprechende css:
quelle
Ok, ich habe das gleiche mit Bootstrap 3.0 erreicht
Beispiel mit dem neuesten Bootstrap
http://jsfiddle.net/HDNQS/1/
Der HTML:
Das SCSS:
quelle
content:none
und andere kleine Dinge). Ich wollte einen 'Drop-In'-Ersatz veröffentlichen, den ich auch kopypastieren kannEs scheint also, dass Ihre beste Option darin besteht, die Strategie der
padding-bottom
negativenmargin-bottom
Strategie zu kontern.Ich habe zwei Beispiele gemacht. Einer mit
<header>
innen.container
und einer mit außen .Beide Versionen sollten ordnungsgemäß funktionieren. Beachten Sie die Verwendung der folgenden
@media
Abfrage, damit die zusätzliche Auffüllung auf kleineren Bildschirmen entfernt wird ...Ansonsten sollten diese Beispiele Ihr Problem beheben.
quelle
Es gibt eine viel einfachere Möglichkeit, dies zu tun, wenn Sie nur die Farbe festlegen.
Fügen Sie dies entweder zuerst oder zuletzt in Ihr Body-Tag ein
und das in deinem css
Sie erstellen lediglich eine Form, stecken sie hinter die Seite und strecken sie auf die volle Höhe. Wenn Sie die vorhandenen Bootstrap-Klassen verwenden, erhalten Sie die richtige Breite und es bleibt reaktionsschnell.
Es gibt einige Einschränkungen bei dieser Methode, aber wenn es um die Stammstruktur der Seite geht, ist es die beste Antwort.
quelle
position: absolute
dannposition: fixed
?.container-fluid
. Ich würde gerne verwenden.container
. Ideen?.container
oder.container-fluid
haben überhaupt keine Relevanz dafür. Das.col.col-md-2
legt die Breite mit Bootstrap fest. Mein CSS oben zwingt das Div auf volle Höhe mit ausreichend negativem Z-Index, um sicherzustellen, dass es hinter allem steht. Wie oben erwähnt, sollte es das allererste oder das allerletzte Element in Ihrem<body>
Tag seinIch habe ein einfaches CSS geschrieben, das mit Bootstrap kompatibel ist, um Tabellen mit voller Breite und Höhe zu erstellen:
Geige: https://jsfiddle.net/uasbfc5e/4/
Das Prinzip ist:
Der HTML:
Das CSS:
quelle
0%;
,0;
was völlig anders ist. In diesem Fall können Sie1%;
stattdessen verwenden.Versuchen
CSS für die .fill-Klasse ist unten
Als Referenz schauen Sie einfach in die Geige.
quelle
span
zucol-md-
und sehen Sie, was passiert<div class="container"> <div class="row"> <div class="col-md-12">header section</div> </div> <div class="row"> <div class="col-md-4">Navigation</div> <div class="col-md-8">Content</div> </div> </div>
Versuche dies
Besuchen Sie http://www.sitepoint.com/building-responsive-websites-using-twitter-bootstrap/
Danke an Syed
quelle
Wenn nach der Zeile kein Inhalt mehr angezeigt wird (die gesamte Bildschirmhöhe wird verwendet), funktioniert der Trick mit der Verwendung von
position: fixed; height: 100%
for-.col:before
Element möglicherweise gut:quelle
Dies wurde hier nicht mit Ausgleich erwähnt.
Sie können absolut verwenden, um die linke Seitenleiste zu positionieren.
CSS
HTML
quelle
Versuche dies
Dies verwendet Bootstrap 3, sodass kein zusätzliches CSS usw. erforderlich ist.
quelle
Hast du das Afix des Bootstraps im Abschnitt von JAvascript gesehen?
Ich denke, es wäre die beste und einfachste Lösung, Alter.
Schauen Sie dort nach: http://getbootstrap.com/javascript/#affix
quelle
Nach dem Experimentieren mit dem hier bereitgestellten Code: Bootstrap Tutorial
Hier ist eine weitere Alternative mit dem neuesten Bootstrap v3.0.2:
Markup:
Zusätzliches CSS:
Beispiel JSFiddle
Hoffe das hilft allen Interessierten.
quelle