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

Das Konzept von MTR in MySQL

MTR steht für Mini-Transaktion. Wie der Name scho...

So fügen Sie Nginx dynamisch Module hinzu

Vorne geschrieben Nachdem wir Nginx basierend auf...

Einführung in die Verwendung des HTML-Elements Noscript

Noscript-Definition und -Verwendung Das Noscript-...

Klassischer Beispielcode für JavaScript-Funktionsaufrufe

Inhaltsverzeichnis Klassisches Beispiel für einen...

Tutorial zu XHTML-Webseiten

Dieser Artikel soll vor allem Anfängern einige gr...

DIV-Hintergrund, halbtransparenter Text, nicht durchscheinender Stil

Der DIV-Hintergrund ist halbtransparent, aber die ...

Der Button hat einen hässlichen grauen Rand. Wie kann ich ihn entfernen?

Ich habe den Dialog beim Schließen verwendet und e...

Eine Fallstudie zur MySQL-Optimierung

1. Hintergrund Auf jeder OLTP-Datenbankinstanz vo...

Forschung zur Größe von Webseiten

<br />Statistiken zufolge hat sich die durch...

Vue implementiert eine einfache Notizblockfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Natives Javascript+CSS, um den Karusselleffekt zu erzielen

Dieser Artikel verwendet Javascript + CSS, um den...