Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der CSS-Zentrierungsmethode

Detaillierte Erläuterung der CSS-Zentrierungsmethode

零到壹度
零到壹度Original
2018-03-26 10:07:391238Durchsuche

CSS-Zentrierung ist ein Problem, mit dem Front-End-Ingenieure häufig konfrontiert sind, und es gehört auch zu den Grundfähigkeiten. Heute hat der Herausgeber die CSS-Zentrierungslösungen zusammengestellt und sortiert. Derzeit gibt es 15 Lösungen, darunter horizontale Zentrierung, vertikale Zentrierung sowie horizontale und vertikale Zentrierung. Wenn welche fehlen, werden sie nacheinander hinzugefügt. Dies kann als Memo betrachtet werden.

Detaillierte Erläuterung der CSS-Zentrierungsmethode

1 Horizontal zentrieren

1.1 Horizontal Zentrierung von Inline-Elementen

Verwenden Sie text-align: center, um eine horizontale Zentrierung von Inline-Elementen innerhalb von Elementen auf Blockebene zu erreichen. Diese Methode eignet sich für die horizontale Zentrierung von Inline-Elementen (Inline), Inline-Blöcken (Inline-Block), Inline-Tabellen (Inline-Table) und Inline-Flex-Elementen.

Kerncode:

.center-text {    text-align: center;
 }

1.2 Elemente auf Blockebene werden horizontal zentriert

Durch Ändern des Randes links und des Randes fester- Breite von Elementen auf Blockebene. Stellen Sie rechts auf „Auto“ ein, um Elemente auf Blockebene horizontal zu zentrieren.

Kerncode:

.center-block {  margin: 0 auto;
}

1.3 Elemente auf mehreren Blockebenen werden horizontal zentriert

1.3.1 Verwendung von Inline-Block

Wenn zwei oder mehr Elemente auf Blockebene in einer Zeile vorhanden sind, legen Sie den Anzeigetyp des Elements auf Blockebene auf „inline-block“ und das Attribut „text-align“ des übergeordneten Containers fest, um die mehreren Elemente auf Blockebene horizontal zu zentrieren .

Kerncode:

.container {    text-align: center;
}.inline-block {    display: inline-block;
}

1.3.2 Verwenden Sie display: flex

Verwenden Sie elastisches Layout (Flex), um eine horizontale Zentrierung zu erreichen, wobei justify-content zum Festlegen verwendet wird Elastizität Die Ausrichtung des Boxelements in Richtung der Hauptachse (horizontale Achse). In diesem Beispiel werden die untergeordneten Elemente horizontal und zentriert angezeigt.

Kerncode:

.flex-center {    display: flex;    justify-content: center;
}

2 Vertikale Zentrierung

2.1 Einzeilige Inline (Inline- ) Zentrieren Sie das Element vertikal

, indem Sie die Höhe (height) und die Zeilenhöhe (line-height) des Inline-Elements gleich einstellen und dadurch das Element vertikal zentrieren.

Kerncode:

#v-box {    height: 120px;    line-height: 120px;
}

2.2 Mehrzeilige Elemente werden vertikal zentriert

2.2.1 Tabellenlayout (Tabelle) verwenden

Verwenden Sie Vertical-Align: Mitte des Tabellenlayouts, um eine vertikale Zentrierung untergeordneter Elemente zu erreichen.

Kerncode:

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

2.2.2 Flex-Layout (flex) verwenden

Flex-Layout verwenden, um eine vertikale Zentrierung zu erreichen, wobei flex-direction: Column die Hauptspalte definiert Achsenrichtung als Hochformat. Da das Flex-Layout in CSS3 definiert ist, gibt es Kompatibilitätsprobleme in älteren Browsern.

Kerncode:

.center-flex {    display: flex;    flex-direction: column;    justify-content: center;
}

2.2.3 Verwendung der „Geisterelement“-Technologie

Verwendung der „Geisterelement“-Technologie (Geisterelement), um eine vertikale Zentrierung zu erreichen, d. h. Platzieren Sie im übergeordneten Container ein Pseudoelement mit einer Höhe von 100 % darin, um den Text und das Pseudoelement vertikal auszurichten und eine vertikale Zentrierung zu erreichen.

Kerncode:

.ghost-center {    position: relative;
}.ghost-center::before {    content: " ";    display: inline-block;    height: 100%;    width: 1%;    vertical-align: middle;
}.ghost-center p {    display: inline-block;    vertical-align: middle;    width: 20rem;
}

2.3 Elemente auf Blockebene sind vertikal zentriert

2.3.1 Elemente auf Blockebene mit fester Höhe

Wir kennen die Höhe und Breite des zentrierten Elements, daher ist das Problem der vertikalen Zentrierung einfach. Eine vertikale Zentrierung kann erreicht werden, indem das Element absolut 50 % von oben positioniert wird und „margin-top“ so eingestellt wird, dass die Hälfte der Elementhöhe nach oben versetzt wird.

Kerncode:

.parent {  position: relative;
}.child {  position: absolute;  top: 50%;  height: 100px;  margin-top: -50px; 
}

2.3.2 Elemente auf Blockebene mit unbekannter Höhe

Wenn die Höhe und Breite des vertikal zentrierten Elements unbekannt sind, können wir verwenden CSS3 Das Transformationsattribut wird um 50 % in die entgegengesetzte Richtung zur Y-Achse versetzt, um eine vertikale Zentrierung zu erreichen. Bei einigen Browsern treten jedoch Kompatibilitätsprobleme auf.

Kerncode:

.parent {    position: relative;
}.child {    position: absolute;    top: 50%;    transform: translateY(-50%);
}

3 Horizontale und vertikale Zentrierung

3.1 Elemente mit fester Breite und Höhe Horizontal und vertikal Zentrierung

übersetzt die Hälfte der Gesamtbreite des Elements durch den Rand, um das Element horizontal und vertikal zu zentrieren.

Kerncode:

.parent {    position: relative;
}.child {    width: 300px;    height: 100px;    padding: 20px;    position: absolute;    top: 50%;    left: 50%;    margin: -70px 0 0 -170px;
}

3.2 Elemente unbekannter Breite und Höhe werden horizontal und vertikal zentriert

2D-Transformation verwenden, sowohl horizontal als auch vertikal. Übersetzt Halbieren Sie Breite und Höhe in die entgegengesetzte Richtung und zentrieren Sie das Element horizontal und vertikal.

Kerncode:

.parent {    position: relative;
}.child {    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%, -50%);
}

3.3 Flex-Layout verwenden

Flex-Layout verwenden, wobei justify-content zum Festlegen oder Abrufen flexibler Boxen verwendet wird elements Die Ausrichtung in Richtung der Hauptachse (horizontale Achse); und die Eigenschaft align-items definiert die Ausrichtung der Flex-Elemente in Richtung der Querachse (vertikale Achse) der aktuellen Zeile des Flex-Containers.

Kerncode:

.parent {    display: flex;    justify-content: center;    align-items: center;
}

3.4 Verwendung eines Rasterlayouts

Die Verwendung eines Rasters zur Erzielung einer horizontalen und vertikalen Zentrierung weist eine schlechte Kompatibilität auf und wird nicht empfohlen.

Kerncode:

.parent {  height: 140px;  display: grid;
}.child { 
  margin: auto;
}

Demoprogramm:

Democode

3.5 Horizontale und vertikale Zentrierung auf dem Bildschirm

Die horizontale und vertikale Zentrierung auf dem Bildschirm wird sehr häufig verwendet und ist für reguläre Anmelde- und Registrierungsseiten erforderlich. Um eine bessere Kompatibilität zu gewährleisten, muss auch das Tabellenlayout verwendet werden.

Kerncode:

.outer {    display: table;    position: absolute;    height: 100%;    width: 100%;
}.middle {    display: table-cell;    vertical-align: middle;
}.inner {    margin-left: auto;    margin-right: auto; 
    width: 400px;
}

Demoprogramm:

Democode

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der CSS-Zentrierungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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