1678 Stimmen

Wie kann ich ein div-Element mit CSS in allen Browsern vertikal zentrieren?

Ich möchte eine div vertikal mit CSS. Ich möchte keine Tabellen oder JavaScript, sondern nur reines CSS. Ich habe einige Lösungen gefunden, aber bei allen fehlt die Unterstützung für Internet Explorer 6.

<body>
    <div>Div to be aligned vertically</div>
</body>

Wie kann ich eine div vertikal in allen gängigen Browsern, einschließlich Internet Explorer 6?

29 Stimmen

@MarcoDemaio Sind die Leute nicht ständig verpönt tables für Layouts hier?

17 Stimmen

@Chud37: es hängt davon ab, was Sie tun müssen, Tabellen für das Layout sind in der Regel nicht vielseitig und lange in Code eingeben, mit css können Sie leicht ändern ein 2 Spalten-Layout in einem 3/4/5 Sols Layout usw. Aber in diesem Fall ist anders, mit Dutzenden von css Tipps und Tricks für eine so einfache Aufgabe, die mit einer perfekten Cross-Browser-Tabelle erreicht werden könnte, ist es wie der Versuch, in Ihr Haus durch das Fenster statt mit der Tür zu betreten.

0 Stimmen

Für den Fall, dass sich die Leute nicht um die Unterstützung älterer Browser kümmern: davidwalsh.name/css-vertikal-zentriert

15voto

antelove Punkte 2552
.center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* (x, y)  => position */
  -ms-transform: translate(-50%, -50%); /* IE 9 */
  -webkit-transform: translate(-50%, -50%); /* Chrome, Safari, Opera */    
}

.vertical {
  position: absolute;
  top: 50%;
  //left: 0;
  transform: translate(0, -50%); /* (x, y) => position */
}

.horizontal {
  position: absolute;
  //top: 0;
  left: 50%;
  transform: translate(-50%, 0); /* (x, y)  => position */
}

div {
  padding: 1em;
  background-color: grey; 
  color: white;
}  

<body>
  <div class="vertical">Vertically left</div>
  <div class="horizontal">Horizontal top</div>
  <div class="center">Vertically Horizontal</div>  
</body>

Verwandt: Bild zentrieren

12voto

Dev Punkte 325

Dies kann auf zwei Arten geschehen

body{
left: 50%; 
top:50%; 
transform: translate(-50%, -50%); 
height: 100%; 
width: 100%; 
}

OR

Verwendung von Flex

body {
    height:100%
    width:100%
    display: flex;
    justify-content: center;
    align-items: center;
}

align-items:center; macht den Inhalt vertikal zentriert

justify-content: center; macht den Inhalt horizontal zentriert

10voto

Ninx Punkte 121

Dorthin gehe ich immer, wenn ich zu einem anderen Ort zurückkehren muss. dieses Thema .

Für diejenigen, die den Sprung nicht wagen wollen:

  1. Geben Sie den übergeordneten Container als position:relative o position:absolute .
  2. Geben Sie eine feste Höhe für den untergeordneten Container an.
  3. Satz position:absolute y top:50% auf dem untergeordneten Container, um den oberen Teil nach unten in die Mitte des übergeordneten Containers zu verschieben.
  4. Legen Sie margin-top:-yy fest, wobei yy die Hälfte der Höhe des untergeordneten Containers ist, um das Element nach oben zu verschieben.

Ein Beispiel dafür im Code:

<style type="text/css">
    #myoutercontainer {position:relative}
    #myinnercontainer {position:absolute; top:50%; height:10em; margin-top:-5em}
</style>
...
<div id="myoutercontainer">
    <div id="myinnercontainer">
        <p>Hey look! I'm vertically centered!</p>
        <p>How sweet is this?!</p>
    </div>
</div>

9voto

Sanjib Debnath Punkte 2918

Ich habe gerade dieses CSS geschrieben, und wenn Sie mehr wissen möchten, lesen Sie bitte weiter: Dieser Artikel mit vertikal ausrichten alles mit nur 3 Zeilen von CSS .

.element {
    position: relative;
    top: 50%;
    transform: perspective(1px) translateY(-50%);
}

1 Stimmen

CSS-Transformationen können zu Verzerrungen von Text und Rändern führen (wenn die Berechnungen Bruchteile von Pixeln ergeben).

8voto

Usman Iqbal Punkte 2168

Für Neueinsteiger, bitte versuchen Sie es:

display: flex;
align-items: center;
justify-content: center;

3 Stimmen

Bitte fügen Sie eine Stapel-Schnipsel der zeigt, wie dieser CSS-Code vertikal richtet eine div .

0 Stimmen

Das funktioniert auch <div style="display:flex"><div style="margin:auto">Inner</div></div>

0 Stimmen

Ich bin auf diese wunderbare Erklärung der Ausrichtungselemente gestoßen und rechtfertige den Inhalt. Unbedingt lesen: stackoverflow.com/questions/42613359/

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