35 Punkte von xguru 2024-09-03 | 29 Kommentare | Auf WhatsApp teilen
  • CSS unterstützt endlich align-content im Standard-Layout, sodass vertikale Ausrichtung mit nur einer einzigen CSS-Eigenschaft möglich wird
    • Unterstützte Versionen: Chrome 123, Firefox 125, Safari 17.4
  • Derzeit funktioniert align-content im Standard-Layout (flow) nicht, sodass man auf flexbox oder grid umstellen muss
    • 2024 implementieren Browser endlich align-content für das Flow-Layout
    • Jetzt ist die Ausrichtung ohne flexbox oder grid mit nur einer einzigen CSS-Eigenschaft möglich
    • Deshalb muss der Inhalt nicht mehr in ein div eingewickelt werden

Geschichte der vertikalen Ausrichtung

  • In Browsern gab es lange keine einfache Methode für vertikale Ausrichtung

Methode 1: Tabellenzelle

  • Sanity (seid ihr noch bei Verstand?): ★★★☆☆
  • Es gibt vier wichtige Layouts: flow (Standard), table, flexbox und grid; die Ausrichtung von Inhalten unterscheidet sich je nach Layout
  • Da flexbox und grid erst spät hinzugekommen sind, wurde anfangs table verwendet

    Content.

Methode 2: Absolute Positionierung

  • Sanity: ☆☆☆☆☆
  • Weil das Flow-Layout nicht hilft, weicht man mit absoluter Positionierung aus

    Content.

Methode 3: Inline-Inhalte

  • Sanity: ☆☆☆☆☆
  • Das Flow-Layout hilft bei der Ausrichtung von Inhalten nicht. Es erlaubt vertikale Ausrichtung innerhalb einer einzelnen Zeile
  • Was wäre also, wenn man eine Zeile in Höhe des Containers erzeugt?

  ::before
  Content.

.container::before {
  content: '';
  height: 100%;
  display: inline-block;
  vertical-align: middle;
}
.content {
  display: inline-block;
  vertical-align: middle;
}
  • Das kann leicht seltsam werden

Methode 4: Einzeilige flexbox

  • Sanity: ★★★☆☆
  • Flexbox wurde erst 20 Jahre nach dem Start des Webs breit eingesetzt
  • Im einzeiligen Modus (Standard) füllt die Zeile den vertikalen Raum, und mit align-items werden Elemente innerhalb der Zeile ausgerichtet

  Content.

  • Oder man macht die Zeilen vertikal und richtet die Elemente mit justify-content aus

  Content.

Methode 5: Mehrzeilige flexbox

  • Sanity: ★★★☆☆
  • In mehrzeiliger flexbox lassen sich Zeilen mit align-content ausrichten

  Content.

Methode 6: grid-Inhalte

  • Sanity: ★★★★☆
  • Da grid noch später kam, wurde die Ausrichtung etwas einfacher

  Content.

Methode 7: grid-Zelle

  • Sanity: ★★★★☆
  • align-content richtet Zellen im Container aus, align-items richtet Inhalte in den Zellen aus

  Content.

Methode 8: auto-Margin

  • Sanity: ★★★☆☆
  • Im Flow-Layout sorgt margin:auto horizontal für Zentrierung, aber nicht vertikal
  • flexbox und grid teilen diese Unvernunft nicht

    Content.

Methode 9: Dieser Artikel im Jahr 2024

  • Sanity: ★★★★★
  • Eigentlich hätten Browser das von Anfang an hinzufügen sollen

  align-content just works!

29 Kommentare

 
tobesimple7 2024-10-17

Wow~ So eine Funktion~~

 
seunggi 2024-09-12

Das Schwierigste an der Informatik – Zentrierung

https://tonsky.me/blog/centering/

 
mongsilsushi 2024-09-06

Endlich!

 
sgwanlee 2024-09-04

Ist CSS jetzt viel zu einfach geworden? hahaha

 
jwh926 2024-09-04

🙏🏻🙏🏻🙏🏻🙏🏻

 
rulerwithcss 2024-09-04

oh mein Gott, Käserand

 
shpkc 2024-09-04

Endlich!

 
halfenif 2024-09-04

Zu spät! Zu spät! Zu spät!

 
uoayop 2024-09-03

Endlich.

 
aer0700 2024-09-03

Das freut mich.

 
koyokr 2024-09-03

Hahaha

 
nemorize 2024-09-03

a-men

 
carnoxen 2024-09-03

Besteht das Risiko, dass bestehende Websites durch diese Änderung strukturell durcheinandergeraten?

 
bluekai17 2024-09-10

Ich bin darauf auch neugierig.

 
ng0301 2024-09-03

Endlich!

 
yatmak 2024-09-03

Endlich ist das Zeitalter von Web 3.0 angebrochen.

 
plaaat0102 2024-09-03

Die Kommentare sind voller Freude, hahaha..

 
godppun 2024-09-03

Wirklich, endlich ...

 
kangkung9225 2024-09-03

Oh …? Muss man das machen, haha ..

 
[Dieser Kommentar wurde ausgeblendet.]
 
qurare 2024-09-03

Endlich.

 
savvykang 2024-09-03

WOW!!!

 
joyfui 2024-09-03

Wow!!!

 
mkyoon 2024-09-03

Ich bin glücklich!

 
wedding 2024-09-03

Da ich hauptsächlich Apps entwickle, habe ich, wenn ich mal bei der Webentwicklung geholfen habe, gedankenlos das erstbeste Flexbox-Beispiel aus der Suche verwendet und angenommen, dass das eben Zentrierung sei ... Ich bin schockiert, dass es das bisher gar nicht gab ...

 
illiil1lii 2024-09-03

Muhahaha!

 
huiya 2024-09-03

Endlich!

 
tjddnjsjo 2024-09-03

Großartig!

 
pkj3186 2024-09-03

Endlich!