Anzeige
Anzeige
UX & Design

CSS3: Alternatives Box-Modell

Im Rahmen von CSS3 nimmt ein alternatives Box-Modell langsam Gestalt an: das „Flexible Box Layout Module“ – oder kurz „Flexbox“. Noch befindet sich das Modul in einem Working Draft, aber es lohnt sich, diese Technik im Auge zu behalten.

3 Min.
Artikel merken
Anzeige
Anzeige

Heutzutage bauen Webworker Website-Layouts mit Boxen und Floats zusammen. Dazu kommen Clearfix-Techniken oder Margin-collapse-Eigenschaften, an die sich alle gewöhnt haben. Mit Flexbox kommt ein alternatives Box-Modell hinzu. Sobald Webworker ein Element als „Flexbox“ deklarieren, kümmert sich ein neuer Layout-Algorithmus um die Darstellung. Für die Flexbox und ihre Kind-Elemente – die „Flexbox Items“ – können sie neue CSS-Eigenschaften und -Werte verwenden.

Anzeige
Anzeige

Zunächst benötigt man ein Eltern-Element, das als Flexbox dient. Die CSS-Eigenschaft „display“ legt fest, wie ein HTML-Element angezeigt wird. Häufig beschränkt sich das auf die Werte „inline“, „block“ oder „none“. Etwas unbekannter sind Werte wie „list-item“ oder „table“. Tatsächlich gibt es in CSS3 derzeit 16 mögliche Werte. Mit Flexbox kommen zwei neue hinzu: „flexbox“ und „inline-flexbox“ [1]. Da sich der aktuelle Working Draft noch im Fluss befindet, beschränkt sich dieser Artikel auf den Wert „flexbox“ und ein paar Layout-Möglichkeiten.

Automatisch wachsen

Die grundlegende Besonderheit einer Flexbox liegt darin, bestimmte Maße der Flexbox Items „flexibel“ zu machen. Solche Angaben kann man zum Beispiel für Höhe, Breite, Innen- oder Außenabstände der Items verwenden. Man rechnet die gewünschten Breiten und Höhen zusammen, vergleicht diese mit den zur Verfügung stehenden Maßen und verteilt dann die Differenz entsprechend. So werden Abstände zum Beispiel gleichmäßig verteilt oder Inhalte geschrumpft. Dabei kann man die flexiblen Werte auch im Verhältnis zueinander angeben, sodass man zum Beispiel drei Bilder im Verhältnis 2:1:1 darstellen kann.

Anzeige
Anzeige

Sind die Elemente passend aufeinander abgestimmt, ergeben sich einige Vereinfachungen. Zum Beispiel ist kein Clearfix mehr nötig. Webworker können die Abstände besser bestimmen und müssen nicht mehr ein margin collapse mit einbeziehen. Außerdem wachsen die Kinder einer Flexbox mit ihren Geschwistern mit. Im Beispiel hat das letzte Bild eine zweite Zeile als Bildunterschrift; die ersten beiden Elemente passen sich in der Höhe an (siehe Screenshot). Webworker können hierdurch also auf JavaScript-Lösungen verzichten, um solche Boxen auf dieselbe Breite oder Höhe zu bringen..

Anzeige
Anzeige

Die Flexbox zeigt die Elemente zunächst anhand der gewählten Richtung in der Reihenfolge der Elemente im Quelltext an. Mit der Eigenschaft „flex-order“ können Webworker die Reihenfolge aber ändern. Browser zeigen die Elemente dann aufsteigend anhand der Werte an, beginnend mit der niedrigsten Nummer. Elemente mit gleicher flex-order werden in der Reihenfolge dargestellt, in der sie im Quelltext stehen. So ist es also per CSS möglich, wichtige Bausteine an den Anfang einer Liste zu setzen. Etwa bei Blogeinträgen, die sonst per CMS als „sticky“ oder „am Anfang von Listen“ gekennzeichnet werden.

Alles im Fluss

Leider ist bei der Spezifikation so einiges im Fluss. Ältere Artikel im Web beschreiben noch Eigenschaften wie „flex-box“, die im aktuellen Working Draft nicht vorkommen. Wenn eine Flexbox in einem Browser funktioniert, dann auch eher unter den Eigenschaftsnamen aus dem Working Draft von 2009. Dort hieß die Eigenschaft „flex-order“ zum Beispiel noch „box-ordinal-group“. Außerdem sind Browser-Prefixes nötig. Und – natürlich – hinkt der Internet Explorer wieder mal komplett hinterher und wird Flexbox erst ab Version 10 unterstützen. Noch ist Flexbox für Live-Projekte nicht zu verwenden, aber in Zukunft könnten Webworker ihre Layouts damit einfacher zusammensetzen.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige