Ich suche nach einer Möglichkeit, das container
Div vertikal innerhalb des jumbotron
zu zentrieren und es in die Mitte der Seite zu setzen.
Das .jumbotron
muss an die volle Höhe und Breite des Bildschirms angepasst werden. Das .container
Div hat eine Breite von 1025px
und sollte sich in der Mitte der Seite befinden (vertikal in der Mitte).
Ich möchte, dass auf dieser Seite das Jumbotron an die Höhe und Breite des Bildschirms angepasst wird und der Container vertikal zum Jumbotron zentriert ist. Wie kann ich das erreichen?
.jumbotron {
height:100%;
width:100%;
}
.container {
width:1025px;
}
.jumbotron .container {
max-width: 100%;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="jumbotron">
<div class="container text-center">
<h1>The easiest and powerful way</h1>
<div class="row">
<div class="col-md-7">
<div class="top-bg"></div>
</div>
<div class="col-md-5 iPhone-features" style="margin-left:-25px;">
<ul class="top-features">
<li>
<span><i class="fa fa-random simple_bg top-features-bg"></i></span>
<p><strong>Redirect</strong><br>Visitors where they converts more.</p>
</li>
<li>
<span><i class="fa fa-cogs simple_bg top-features-bg"></i></span>
<p><strong>Track</strong><br>Views, Clicks and Conversions.</p>
</li>
<li>
<span><i class="fa fa-check simple_bg top-features-bg"></i></span>
<p><strong>Check</strong><br>Constantly the status of your links.</p>
</li>
<li>
<span><i class="fa fa-users simple_bg top-features-bg"></i></span>
<p><strong>Collaborate</strong><br>With Customers, Partners and Co-Workers.</p>
</li>
<a href="pricing-and-signup.html" class="btn-primary btn h2 lightBlue get-Started-btn">GET STARTED</a>
<h6 class="get-Started-sub-btn">FREE VERSION AVAILABLE!</h6>
</ul>
</div>
</div>
</div>
</div>
html
css
twitter-bootstrap
twitter-bootstrap-3
vertical-alignment
user1012181
quelle
quelle
Antworten:
Der flexible Box-Weg
Die vertikale Ausrichtung ist jetzt durch die Verwendung des flexiblen Box-Layouts sehr einfach . Heutzutage wird diese Methode in einer Vielzahl von Webbrowsern mit Ausnahme von Internet Explorer 8 und 9 unterstützt. Daher müssten wir einige Hacks / Polyfills oder andere Ansätze für IE8 / 9 verwenden.
Im Folgenden zeige ich Ihnen, wie das in nur 3 Textzeilen geht (unabhängig von der alten Flexbox-Syntax) .
Hinweis: Es ist besser, eine zusätzliche Klasse zu verwenden, als sie
.jumbotron
zu ändern , um die vertikale Ausrichtung zu erreichen. Ich würdevertical-center
zum Beispiel den Klassennamen verwenden.Beispiel hier (Ein Spiegel auf jsbin) .
Wichtige Hinweise (in der Demo berücksichtigt) :
Ein Prozentwert von
height
odermin-height
Eigenschaften bezieht sich auf den Wert desheight
übergeordneten Elements. Daher sollten Sie den Wert des übergeordneten Elementsheight
explizit angeben .Herstellerpräfix / alte Flexbox-Syntax wurde aus Gründen der Kürze im veröffentlichten Snippet weggelassen, ist jedoch im Online-Beispiel vorhanden.
In einigen alten Webbrowsern wie Firefox 9 (in dem ich getestet habe) nimmt der Flex-Container -
.vertical-center
in diesem Fall - nicht den verfügbaren Speicherplatz im übergeordneten Element ein. Daher müssen wir diewidth
Eigenschaft wie folgt angeben :width: 100%
.Auch in einigen der oben genannten Webbrowser wird das Flex-Element -
.container
in diesem Fall - möglicherweise nicht horizontal in der Mitte angezeigt. Es scheint, dass das angewendete Links / Rechtsmargin
vonauto
keinen Einfluss auf das Flex-Element hat.Deshalb müssen wir es durch ausrichten
box-pack / justify-content
.Weitere Details und / oder die vertikale Ausrichtung von Spalten finden Sie im folgenden Thema:
Der traditionelle Weg für ältere Webbrowser
Dies ist die alte Antwort, die ich geschrieben habe, als ich diese Frage beantwortet habe. Diese Methode wurde diskutiert hier und es an der Arbeit in Internet Explorer 8 und 9 als auch angenommen. Ich werde es kurz erklären:
Im Inline-Flow kann ein Inline-Level-Element durch
vertical-align: middle
Deklaration vertikal zur Mitte ausgerichtet werden . Spezifikation von W3C :In Fällen, in denen das übergeordnete
.vertical-center
Element - in diesem Fall ein explizitesheight
Element hatheight
, können wir die Grundlinie des übergeordneten Elements auf den Mittelpunkt des vollständigen Elements verschieben, wenn wir möglicherweise ein untergeordnetes Element haben, das genau dasselbe wie das übergeordnete Element hat -Höhe Kind und überraschenderweise machen unser gewünschtes In-Flow-Kind - das.container
- vertikal zur Mitte ausgerichtet.Alles zusammen bekommen
Davon abgesehen könnten wir ein Element voller Höhe innerhalb der
.vertical-center
by-::before
oder::after
pseudo-Elemente erstellen und auch den Standardtypdisplay
davon und das andere untergeordnete Element , das.container
to, änderninline-block
.Verwenden Sie dann
vertical-align: middle;
, um die Inline-Elemente vertikal auszurichten.Bitte schön:
ARBEITSDEMO .
Um unerwartete Probleme in besonders kleinen Bildschirmen zu vermeiden, können Sie die Höhe des Pseudoelements auf
auto
oder zurücksetzen0
oder dendisplay
Typnone
bei Bedarf auf Folgendes ändern :AKTUALISIERTE DEMO
Und noch etwas:
Wenn es
footer
/header
Abschnitte um den Behälter, es ist besser zu positionieren , dass die Elemente richtig (relative
,absolute
? Bis zu Ihnen.) Und einen höheren hinzufügenz-index
Wert (für Sicherheit) , um sie immer auf der Oberseite des anderen zu halten.quelle
display: flex
um ein.container
, es bewirkt , dass das Kind.row
s ausflippen. Es scheint, als würde die Flexbox-Methode erfordern, dass wir auf einige der wichtigsten Bootstrap-Funktionen verzichten müssen.Update 2019
Bootstrap 4 enthält Flexbox, sodass die Methode der vertikalen Zentrierung viel einfacher ist und kein zusätzliches CSS erfordert .
Verwenden Sie einfach die
d-flex
undalign-items-center
Utility-Klassen.http://www.codeply.com/go/ui6ABmMTLv
Wichtig: Die vertikale Zentrierung ist relativ zur Höhe . Der übergeordnete Container der Elemente, die Sie zentrieren möchten, muss eine definierte Höhe haben . Wenn Sie die Höhe der Seite wünschen, verwenden Sie
vh-100
odermin-vh-100
auf dem übergeordneten! Zum Beispiel:Siehe auch: Vertical Align Center in Bootstrap 4
quelle
Fügen Sie Bootstrap.css hinzu und fügen Sie dies Ihrem CSS hinzu
quelle
In Bootstrap 4 :
um horizontal das Kind Zentrum Verwendung Bootstrap-4 - Klasse:
um das Kind zu Zentrum vertikal , Verwendung Bootstrap-4 - Klasse:
Aber denken Sie daran, vergessen Sie nicht, die D-Flex- Klasse zu verwenden. Dies ist eine Bootstrap-4-Dienstprogrammklasse
Hinweis: Stellen Sie sicher, dass Sie Bootstrap-4-Dienstprogramme hinzufügen, wenn dieser Code nicht funktioniert
Ich weiß, dass es nicht die direkte Antwort auf diese Frage ist, aber es kann jemandem helfen
quelle
Meine bevorzugte Technik:
Demo
Siehe auch diese Geige !
quelle
Getestet in IE, Firefox und Chrome.
Gefunden auf https://css-tricks.com/centering-css-complete-guide/
quelle
für Bootstrap4 vertikale Mitte weniger Elemente
d-flex für Flexregeln
Flex-Säule für vertikale Richtung auf Gegenständen
Justify-Content-Center für die Zentrierung
style = 'height: 300px;' muss für Sollwerte haben, bei denen der Mittelpunkt berechnet werden soll, oder muss die Klasse h-100 verwenden
dann für horizontale Mitte div d-flex rechtfertigen-Inhalts-Mitte und einige Container
Wir haben also eine Hierarchie von 3 Tags: div-column -> div-row -> div-container
quelle
Wenn Sie Bootstrap 4 verwenden, müssen Sie nur 2 Divs hinzufügen:
Die Klassen: d-table, d-table-cell, w-100, h-100 und align-middle erledigen den Job
quelle
Geben Sie die Containerklasse an
Geben Sie das Div an, das sich im Container befindet:
Der gesamte Inhalt dieses Div wird in der Mitte der Seite angezeigt.
quelle
Hier ist die Art und Weise, wie ich Inhalte vertikal ausrichte - oben / Mitte / unten mit Bootstrap 3-Zeilen. Bootstrap 3 Spalten mit gleicher Höhe und vertikal ausgerichtet.
Hier ist eine JSFiddle- Demo.
quelle