Es ist relativ einfach, die horizontale Zentrierung in CSS zu implementieren. Wenn Sie eine horizontale Zentrierung von Inline-Elementen oder Inline-Block-Elementen erreichen möchten, können Sie im Allgemeinen text-align: center
für das übergeordnete Element auf Blockebene festlegen. Wenn Sie eine horizontale Zentrierung von Elementen auf Blockebene erreichen möchten, können Sie . Und wenn Sie eine vertikale Mittelausrichtung erreichen möchten, ist dies möglicherweise nicht einfach. magin: auto
die Höhe ändert sich adaptiv mit dem Inhalt, der andere ist die feste Höhe.
Feste Höhe, um horizontale und vertikale Zentrierung zu erreichenMethode 1Die gebräuchlichste Methode besteht darin, Höhe + Zeilenhöhe zu verwenden, denselben Wert festzulegen und Text zu verwenden. align Verwenden Sie diese Option, um eine horizontale und vertikale Mittelausrichtung von Text zu erreichen<div class="container">Hello World!</div> .container { width: 300px; height: 300px; line-height: 300px; text-align: center; border: 1px solid red; }
<div class="container">Hello World!</div> .container { position: absolute; left: 50%; top: 50%; margin-left: -150px; margin-top: -150px; width: 300px; height: 300px; border: 1px solid red; }
.container { position: absolute; left: calc(50% - 150px); top: calc(50% - 150px); width: 300px; height: 300px; border: 1px solid red; }
<div class="space"></div> <div class="container"> <div class="inner"> hello world! </div> </div> .space { float: left; height: 50%; margin-top: -150px; } .container { clear: both; height: 300px; border: 1px solid red; position: relative; }
. position:relative
<div class="container">Hello World!</div> .container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); // 自身宽度和高度的一半 border: 1px solid red; }
Nachteil: Elemente werden vom Dokumentenfluss losgelöst. Wenn das Element, das zentriert werden muss, die Höhe des Ansichtsfensters bereits überschreitet, wird seine Oberseite vom Ansichtsfenster abgeschnitten.
<div class="container">Hello World!</div> .container { width: 300px; margin: 50% auto 0; border: 1px solid red; tarnsform: translateY(-50%); }
oder document.body.clientHeight
im DOM entspricht, d. h. 1vh ist gleich 1 % der Höhe des Ansichtsfensters. Informationen zu Browserkompatibilitätsproblemen mit der vh-Einheit finden Sie unter vh. Daher kann der obige Code wie folgt geändert werden, um den horizontalen und vertikalen Zentrierungseffekt zu erzielen. document.documentElement.clientHeight
<div class="container">Hello World!</div> .container { width: 300px; margin: 50vh auto 0; transform: translateY(-50%); border: 1px solid red; }
<div class="container"> <div class="inner"> <p>hello world!</p> </div> </div> .container { display: flex; height: 100vh; } .inner { margin: auto; }
erstellen, kann display: flex
nicht nur horizontal, sondern auch vertikal zentriert werden. Dies liegt daran, dass automatische Ränder den zusätzlichen Platz horizontal oder vertikal halbieren. margin: auto
verwenden, um die Ausrichtung der Hauptachse des flexiblen Artikels zu definieren, und justify-content: center
, um die Ausrichtung der Seitenachse des flexiblen Artikels zu definieren. align-items: center
<div class="container"> <div class="inner"> <p>hello world</p> </div> </div> .container { display: flex; justify-content: center; align-items: center; height: 100vh; }
verwenden, um eine Tabelle zu simulieren, und display: table
auf das untergeordnete Element festlegen, es zu einer Zelle der Tabelle werden lassen und Gleichzeitig können Sie ein vertikal zentriertes Layout erreichen display: table-cell
vertical-align: middle
<div class="container"> <div class="inner"> hello world! </div> </div> .container { display: table; /* 让div以表格的形式渲染 */ width: 100%; border: 1px solid red; } .inner { display: table-cell; /* 让子元素以表格的单元格形式渲染 */ text-align: center; vertical-align: middle; }
Das obige ist der detaillierte Inhalt vonEinführung in verschiedene Methoden zum Erreichen einer horizontalen und vertikalen Zentrierung mit CSS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!