401 Stimmen

Wie man einen Container in Bootstrap vertikal zentriert?

Ich suche nach einer Möglichkeit, den container div innerhalb des jumbotron vertikal zu zentrieren und ihn in die Mitte der Seite zu setzen.

Der .jumbotron muss an die volle Höhe und Breite des Bildschirms angepasst werden. Der .container div hat eine Breite von 1025px und sollte in der Mitte der Seite (vertikal zentriert) stehen.

Ich möchte, dass diese Seite den jumbotron an die Höhe und Breite des Bildschirms anpasst und den container vertikal zentriert zum jumbotron. Wie kann ich das erreichen?

.jumbotron {
  height:100%;
  width:100%;
}
.container {
  width:1025px;
}
.jumbotron .container {
  max-width: 100%;
} 

        Der einfachste und leistungsstärkste Weg

                        WeiterleitenDie Besucher dorthin bringen, wo sie mehr konvertieren.

                        VerfolgenAufrufe, Klicks und Konversionen.

                        ÜberprüfenStändig den Status Ihrer Links überprüfen.

                        ZusammenarbeitenMit Kunden, Partnern und Kollegen.

                        LOSLEGEN
                        KOSTENLOSE VERSION VERFÜGBAR!

674voto

Hashem Qolami Punkte 95440

Der Flexible Box-Weg

Die vertikale Ausrichtung ist jetzt ganz einfach durch die Verwendung des Flexible Box-Layouts. Heutzutage wird diese Methode in einer großen Anzahl von Webbrowsern unterstützt, außer Internet Explorer 8 & 9. Daher müssten wir einige Hacks/Polyfills oder unterschiedliche Ansätze für IE8/9 verwenden.

Im Folgenden zeige ich Ihnen, wie das mit nur 3 Textzeilen funktioniert (unabhängig von der alten Flexbox-Syntax).

Hinweis: Es ist besser, eine zusätzliche Klasse anstelle von Änderungen an .jumbotron zu verwenden, um die vertikale Ausrichtung zu erreichen. Ich könnte z.B. den Klassennamen vertical-center verwenden.

Hier ist ein Beispiel (Ein Mirror auf jsbin).

    ...

.vertical-center {
  min-height: 100%;  /* Fallback für Browser, die die vh-Einheit nicht unterstützen */
  min-height: 100vh; /* Diese beiden Zeilen zählen als eine :-)       */

  display: flex;
  align-items: center;
}

Wichtige Hinweise (im Demo berücksichtigt):

  1. Ein Prozentsatz der Werte der height- oder min-height-Eigenschaften ist relativ zur height des übergeordneten Elements, daher sollten Sie die height des Elternelements explizit angeben.

  2. Vendor-prefixes / alte Flexbox-Syntax werden im geposteten Ausschnitt aufgrund der Kürze weggelassen, sind aber im Online-Beispiel vorhanden.

  3. In einigen alten Webbrowsern wie Firefox 9 (in dem ich getestet habe) nimmt der Flex-Container - .vertical-center in diesem Fall - keinen verfügbaren Platz innerhalb des Elternelements ein, daher müssen wir die width-Eigenschaft angeben wie: width: 100%.

  4. Auch in einigen der oben genannten Webbrowser erscheint das Flex-Element - .container in diesem Fall - horizontal möglicherweise nicht in der Mitte. Es scheint, dass die angewendeten links/rechts-margin-Eigenschaften von auto keine Auswirkung auf das Flex-Element haben.
    Daher müssen wir es durch box-pack / justify-content ausrichten.

Für weitere Details und/oder die vertikale Ausrichtung von Spalten können Sie sich auf das folgende Thema beziehen:


Der traditionelle Weg für veraltete Webbrowser

Das ist die alte Antwort, die ich zur Zeit der Beantwortung dieser Frage geschrieben habe. Diese Methode wurde hier diskutiert und soll auch in Internet Explorer 8 und 9 funktionieren. Ich werde es kurz erklären:

Im Inline-Fluss kann ein Inline-Level-Element durch die Deklaration vertical-align: Mitte vertikal in die Mitte ausgerichtet werden. Spezifikation von W3C:

Mitte
Richten Sie den vertikalen Mittelpunkt des Feldes mit der Grundlinie des übergeordneten Feldes plus der Hälfte der x-Höhe des übergeordneten Feldes aus.

In Fällen, in denen das übergeordnete Element - das .vertical-center-Element in diesem Fall - eine explizite height hat, könnten wir zufälligerweise ein Kindelement mit genau derselben height des Elternelements haben, und wir könnten die Grundlinie des Elternelements auf den Mittelpunkt des Vollhöhe-Kinds verschieben und überraschenderweise unser gewünschtes Inline-Kind - das .container - vertikal zentriert ausrichten.

Alles zusammenstellen

Das gesagt habend, könnten wir ein Vollhöhenelement innerhalb des .vertical-center durch die ::before- oder ::after-Pseudo-Elemente erstellen und auch den Standard-display-Typ davon und des anderen Kindes, dem .container, zu inline-block ändern.

Dann verwenden Sie vertical-align: Mitte;, um die Inline-Elemente vertikal auszurichten.

Hier ist es:

    ...

.vertical-center {
  height:100%;
  width:100%;

  text-align: Mitte;  /* Ausrichtung der Inline(-Block)-Elemente horizontal */
  Schriftart: 0/0 a;         /* Abstand zwischen Inline(-Block)-Elementen entfernen */
}

.vertical-center:before {    /* Erstellt ein Vollhöhe-Inline-Block-Pseudo-Element */
  Inhalt: " ";
  display: inline-block;
  vertical-align: Mitte;    /* Vertikale Ausrichtung des Inline-Elements */
  height: 100%;
}

.vertical-center > .container {
  maximalbreite: 100%;

  Anzeige: inline-block;
  vertical-align: Mitte;  /* Vertikale Ausrichtung des Inline-Elements */
                           /* Schriftart-Eigenschaft zurücksetzen */
  Schriftart: 16px/1 "Helvetica Neue", Helvetica, Arial, sans-serif;
}

FUNKTIONIERENDES DEMO.

Außerdem, um unerwartete Probleme in sehr kleinen Bildschirmen zu vermeiden, können Sie die Höhe des Pseudo-Elements auf auto oder 0 zurücksetzen oder seinen display-Typ bei Bedarf auf none ändern:

@media (max-width: 768px) {
  .vertical-center:before {
    height: auto;
    /* Oder */
    display: none;
  }
}

AKTUALISIERTES DEMO

Und noch etwas:

Wenn es footer / header-Bereiche um den Container gibt, ist es besser, diese Elemente ordnungsgemäß zu positionieren (relativ, absolut? Ihnen überlassen.) und einen höheren z-index-Wert hinzuzufügen (zur Sicherheit), um sie immer oben auf den anderen zu halten.

217voto

Zim Punkte 326162

Aktualisierung 2021

Bootstrap 5 verwendet weiterhin flexbox, daher sind die Methoden zur vertikalen Zentrierung die gleichen wie bei Bootstrap 4...

Bootstrap 4 verwendet flexbox, daher ist die Methode zur vertikalen Zentrierung viel einfacher und erfordert kein zusätzliches CSS.

Verwenden Sie einfach die Dienstprogrammklassen d-flex und align-items-center..

    Inhalt

http://codeply.com/go/ui6ABmMTLv

Wichtig: Die vertikale Zentrierung ist relativ zur Höhe. Der Elterncontainer der Elemente, die Sie zentrieren möchten, muss eine definierte Höhe haben. Wenn Sie die Höhe der Seite möchten, verwenden Sie vh-100 oder min-vh-100 beim Elterncontainer! Zum Beispiel:

    Ich bin vertikal zentriert

Siehe auch: https://stackoverflow.com/questions/42252443/vertical-align-center-in-bootstrap-4

52voto

Rontuku Punkte 521

Fügen Sie Bootstrap.css hinzu und fügen Sie dies zu Ihrer CSS hinzu

html, body{height:100%; margin:0;padding:0}

.container-fluid{
  height:100%;
  display:table;
  width: 100%;
  padding: 0;
}

.row-fluid {height: 100%; display:table-cell; vertical-align: middle;}

.centering {
  float:none;
  margin:0 auto;
}

Jetzt rufen Sie auf Ihrer Seite 

           Ich bin jetzt in der Mitte :-)

40voto

In Bootstrap 4:

um das Kind horizontal zu zentrieren, verwenden Sie die Bootstrap 4-Klasse:

justify-content-center

um das Kind vertikal zu zentrieren, verwenden Sie die Bootstrap 4-Klasse:

align-items-center

aber vergessen Sie nicht, die Klasse d-flex mit diesen zu verwenden es ist eine Bootstrap-4-Hilfsklasse, wie folgt

    MITTE    

Hinweis: stellen Sie sicher, dass Sie die Bootstrap-4-Hilfsklassen hinzufügen, wenn dieser Code nicht funktioniert

Ich weiß, dass dies keine direkte Antwort auf diese Frage ist, aber es könnte jemandem helfen

8voto

John Slegers Punkte 41127

Meine bevorzugte Technik :

body {
  display: table;
  position: absolute;
  height: 100%;
  width: 100%;
}

.jumbotron {
   display: table-cell;
   vertical-align: middle;
}

Demo

body {
  display: table;
  position: absolute;
  height: 100%;
  width: 100%;
}

.jumbotron {
   display: table-cell;
   vertical-align: middle;
}

    Der einfachste und mächtigste Weg

        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

            WeiterleitungBesucher dorthin leiten, wo sie mehr konvertieren.

            VerfolgenAufrufe, Klicks und Konversionen.

            ÜberprüfenStändig den Status Ihrer Links überprüfen.

            KollaborierenMit Kunden, Partnern und Kollegen.

          LOSLEGEN
          KOSTENLOSE VERSION VERFÜGBAR!

Siehe auch dieses Fiddle!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X