Heim > Web-Frontend > CSS-Tutorial > Warum zentriert „margin: auto auto;' ein Div nicht vertikal?

Warum zentriert „margin: auto auto;' ein Div nicht vertikal?

Patricia Arquette
Freigeben: 2024-12-11 09:08:14
Original
408 Leute haben es durchsucht

Why Doesn't `margin: auto auto;` Vertically Center a Div?

Vertikales Ausrichten eines Div mit margin:auto

While margin: 0 auto; kann ein Div horizontal zentrieren, Rand: auto auto; richtet es nicht wie vorgesehen vertikal aus. Zusätzlich vertikal ausrichten: Mitte; ist für Elemente auf Blockebene unwirksam.

Warum vertikale automatische Ränder fehlschlagen

  • margin-top: auto und margin-bottom: auto Auf Null berechnen, ohne Zentrierungseffekt.
  • margin-top: -50 % berechnet seinen Wert relativ zur Breite des enthaltenden Blocks, nicht zu seiner Höhe.

Problemumgehung mit verschachtelten Elementen

Eine praktikable Problemumgehung besteht darin, drei Elemente zu verschachteln:

.container {
    display: table;
    height: 100%;
    position: absolute;
    overflow: hidden;
    width: 100%;
}
.helper {
    position: absolute;
    top: 50%;
    display: table-cell;
    vertical-align: middle;
}
.content {
    position: relative;
    top: -50%;
    margin: 0 auto;
    width: 200px;
    border: 1px solid orange;
}
Nach dem Login kopieren
<div class="container">
    <div class="helper">
        <div class="content">
            <p>stuff</p>
        </div>
    </div>
</div>
Nach dem Login kopieren

In dieser Lösung:

  • Das Äußere Das .container-Element erstellt eine tabellenartige Struktur.
  • Das .helper-Element platziert den Inhalt in der vertikalen Mitte.
  • Das .content-Div wird innerhalb von .helper positioniert und kann mit einem Rand horizontal zentriert werden : 0 automatisch;.

Das obige ist der detaillierte Inhalt vonWarum zentriert „margin: auto auto;' ein Div nicht vertikal?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage