CSS-Layout-Tutorial: So erreichen Sie eine vertikale Zentrierung

CSS-Layout-Tutorial: So erreichen Sie eine vertikale Zentrierung

Vorwort

Ich habe kürzlich mein Front-End-Wissen zusammengefasst und auch an einigen Interviews teilgenommen. Während des Interviews stieß ich auf eine Frage, die eine vertikale Zentrierung erforderte. Jetzt werde ich dies zusammenfassen, um mein Wissen zu festigen.

Vertikale Zentrierung in CSS

1. Verwenden Sie die Zeilenhöhe, um eine Zentrierung zu erreichen. Diese Methode eignet sich für reinen Text.

<!-- css -->
<Stil>
.Eltern {
  Höhe: 400px;
  Zeilenhöhe: 400px;
  Breite: 400px;
  Rand: 1px durchgehend rot;
  Textausrichtung: zentriert;
}

.Kind {
  Hintergrundfarbe: blau;
  Farbe: #fff;
}
 </Stil>
</Kopf>

<Text>
<!-- html -->
<div Klasse="Eltern">
   <span class="child">CSS-Layout, vertikale Zentrierung</span>
</div>
</body>

2. Durch Festlegen der relativen Positionierung des übergeordneten Containers und der absoluten Positionierung des untergeordneten Containers wird das Etikett adaptiv über den Rand zentriert.

<!-- css -->
<Stil>
.Eltern {
  Höhe: 400px;
  Breite: 400px;
  Rand: 1px durchgehend rot;
  Position: relativ;
}

.Kind {
  Breite: 200px;
  Höhe: 100px;
  Zeilenhöhe: 100px;
  Textausrichtung: zentriert;
  Farbe: #fff;
  Hintergrundfarbe: blau;
  /* Setze die vier Richtungen auf 0 und verwende dann den Rand auf Auto, um adaptiv zu zentrieren*/
  Position: absolut;
  oben: 0;
  rechts: 0;
  unten: 0;
  links: 0;
  Rand: automatisch;
}
 </Stil>
</Kopf>

<Text>
<!-- html -->
<div Klasse="Eltern">
  <span class="child">CSS-Layout, vertikale Zentrierung</span>
</div>
</body>

3. Flexibles Layout „Flex“: Das übergeordnete Element ist auf „Anzeige: Flex“ eingestellt, das untergeordnete Element auf „Rand automatisch“, um eine adaptive Zentrierung zu erreichen.

  <!-- css -->
  <Stil>
    .Eltern {
      Höhe: 400px;
      Breite: 400px;
      Rand: 1px durchgehend rot;
      Anzeige: Flex;
    }

    .Kind {
      Breite: 200px;
      Höhe: 100px;
      Zeilenhöhe: 100px;
      Textausrichtung: zentriert;
      Farbe: #333;
      Hintergrundfarbe: gelb;
      Rand: automatisch;
  }
 </Stil>
</Kopf>

<Text>
 <!-- html -->
  <div Klasse="Eltern">
    <span class="child">CSS-Layout, vertikale Zentrierung</span>
  </div>
</body>

4. Das übergeordnete Element ist auf relative Positionierung eingestellt, das untergeordnete Element auf absolute Positionierung. Dies wird durch eine Verschiebungstransformation erreicht.

  <!-- css -->
  <Stil>
    .Eltern {
      Höhe: 400px;
      Breite: 400px;
      Rand: 1px durchgehend rot;
      Position: relativ;
    }

    .Kind {
      Breite: 200px;
      Höhe: 100px;
      Zeilenhöhe: 100px;
      Textausrichtung: zentriert;
      Farbe: #fff;
      Hintergrundfarbe: grün;
      Position: absolut;
      oben: 50 %;
      links: 50%;
      transformieren: übersetzen(-50 %, -50 %);
    }
  </Stil>
</Kopf>

<Text>
  <!-- html -->
  <div Klasse="Eltern">
    <span class="child">CSS-Layout, vertikale Zentrierung</span>
  </div>
</body>

5. Das übergeordnete Element legt die elastische Box und die mit der elastischen Box verbundenen Eigenschaften fest.

 <!-- css -->
 <Stil>
    .Eltern {
      Höhe: 400px;
      Breite: 400px;
      Rand: 1px durchgehend rot;
      Anzeige: Flex;
      Inhalt ausrichten: zentriert; /* horizontal */
      align-items: center; /* vertikal */
    }

    .Kind {
      Breite: 200px;
      Höhe: 100px;
      Farbe: Schwarz;
      Hintergrundfarbe: orange;
    }
  </Stil>
</Kopf>

<Text>
  <!-- html -->
  <div Klasse="Eltern">
    <span Klasse="Kind"></span>
  </div>
</body>

6. Rasterlayout, das übergeordnete Element wird in eine Tabelle umgewandelt und dann wird das untergeordnete Element auf Inline oder Inline-Block eingestellt. (Es ist zu beachten, dass die Voraussetzung für die Verwendung von vertical-align: middle Inline-Elemente und Elemente mit einem Anzeigewert von table-cell sind).

 <!-- css -->
 <Stil>
    .Eltern {
      Höhe: 400px;
      Breite: 400px;
      Rand: 1px durchgehend rot;
      Anzeige: Tabellenzelle;
      Textausrichtung: zentriert;
      vertikale Ausrichtung: Mitte;
    }

    .Kind {
      Breite: 200px;
      Höhe: 100px;
      Farbe: #fff;
      Hintergrundfarbe: blau;
      Anzeige: Inline-Block; /* Einstellungen für untergeordnete Elemente inline oder Inline-Block*/
    }
  </Stil>
</Kopf>

<Text>
  <!-- html -->
  <div Klasse="Eltern">
    <span Klasse="Kind"></span>
  </div>
</body>

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

<<:  So erreichen Sie eine nahtlose Token-Aktualisierung

>>:  Web-Kenntnisse: Lösung für die Koexistenz mehrerer IE-Versionen IETester

Artikel empfehlen

Wann sollte man Map anstelle einfacher JS-Objekte verwenden?

Inhaltsverzeichnis 1. Map akzeptiert jeden Schlüs...

So konfigurieren Sie die PDFLatex-Umgebung in Docker

Technischer Hintergrund Latex ist ein unverzichtb...

Verwenden des radialen Farbverlaufs in CSS zum Erzielen eines Karteneffekts

Vor einigen Tagen erhielt eine Kollegin ein Punkt...

So installieren Sie Jenkins auf CentOS 8

Um Jenkins auf CentOS 8 zu installieren, müssen S...

JavaScript zum Implementieren des Slider-Verifizierungscodes

In diesem Artikel wird der spezifische JavaScript...

Einführung in JavaScript-Array-Deduplizierungs- und -Flatteningfunktionen

Inhaltsverzeichnis 1. Array-Abflachung (auch als ...

Vue 2.0 Grundlagen im Detail

Inhaltsverzeichnis 1. Funktionen 2. Beispiele 3. ...

Detaillierte Beschreibung der chinesischen ffmpeg-Parameter

Details zu den Parametern der Version FFMPEG 3.4....

Implementierung der MySQL5.7 mysqldump-Sicherung und -Wiederherstellung

MySQL-Sicherung Kaltes Backup:停止服務進行備份,即停止數據庫的寫入H...