| Hintergrund
                        
                                    
                        | Um einen mit Flex Boxen zu arbeiten, muss man einen Flex-Container definieren, welcher, als Eltern-Element, die Flex  Elemente umschließt. Ob sich der Flex Container wie ein inline oder ein block-Element verhält, bestimmt der gegebene Wert.Hat man einen Flex Container definiert, so bestimmt dieser die flex Eigenschaften der beinhalteten Kind-Elemente.
 Das Flexbox Layout ist ein Modul zielt darauf ab, einen effizienteren Weg anzubieten, um den Platz zu verteilen, aufzuteilen und auszurichten, welchen Elemente einnehmen. Selbst wenn deren Größe nicht bekannt ist und/oder dynamisch. Daher auch der Begriff "Flex".
 
 Die Hauptidee hinter dem Flex Layout ist es, einem Container die Fähigkeit zu verleihen, die Höhe/Breite der Elemente seines Inhaltes zu verändern und anzuordnen, um den verfügbaren Platz bestmöglich auszunutzen. Primär um sich bestmöglich an alle Arten von Displays und Auflösungen anzupassen.
 |  Das Flexbox Layout ist ideal geeignet für die Komponenten einer Anwendung und Layout mit einem kleinen Maßstab. Das Raster Layout (Grid) hingegen ist für größere Maßstäbe gedacht. display
                        
                                    
                        | Definiert einen Flex Container 
Code:
 .container {
 display: flex / oder inline-flex / ;
 }
 |  CSS-Columns haben keinen Einfluss auf einen Flex-Container flex-direction
                        
                                    
                        | definiert die Hauptachse, an der die Flex-Elemente im Flex-Container angeordnet werden. Flexbox ist ein Layout Konzept, gedacht ist um nur in eine Richtung gerichtet ist. Flex Elemente werden entweder in horizontalen oder vertikalen Spalten ausgerichtet. 
Code:
 .container {
 flex-direction: row | row-reverse | column | column-reverse ;
 }
 |  row(default): ordnet von links nach rechts anrow-revers: ordnet von rechts nach links an
 column: ordnet von oben nach unten an
 column-reverse: ordnet die Elemente von unten nach oben an.
 flex-wrap
                        
                                    
                        | Von Haus aus versuchen alle Flex-Elemente sich in einer Zeile anzuordnen. Ändern kann man dies mit dem  flex-wrap
  Attribut. Die Richtung spielt auch eine Rolle, in dem sie bestimmt, in welcher Richtung die neue Zeile aufgefüllt wird.
 
Code:
 .container {
 flex-wrap: nowrap | wrap | wrap-reverse ;
 }
 |  nowrap (Standard): Anordnung in einer Zeile von lnks nach rechtswrap: Anordnung in mehreren Zeilen von links nach rechts
 wrap-reverse: Anordnung in mehreren Zeilen von rechts nach links
 align-items
                        
                                    
                        | Definiert das Standardverhalten wie Kind Elemente entlang der Hauptachse angeordnet werden.  
Code:
 .container {
 align-items: flex-start | flex-end | center | stretch | baseline ;
 flex-start}
 : Alle Elemente werden am oberen Rand des Eltern Containers angeordnet.
flex-end : Alle Elemente werden am unteren Rand des Eltern Containers angeordnet.
center : Alle Elemente werden mittig im Eltern Container angeordnet.
stretch  (Standard): Streckt alle Kind Elemente bis an den oberen und unteren Rand des Eltern Containers.
baseline : Alle Elemente werden entlang der Basislinie ihres Inhaltes ausgerichtet. |  Man kann  align-items
  als vertikale Version von  justify-content
  betrachten. order
                        
                                    
                        | Grundsätzlich werden flex-Elemente in der Reihenfolge, wie sie im Quelltext stehen angezeigt. 
Jedoch lässt sich, mittels  order
 , eine eigene Reihenfolge vorgeben, in welcher die Elemente angezeigt werden.
 
Code:
 .item {
 order: <integer> <integer> ...;
 }
 |  align-self
                        
                                    
                        | Erlaubt es, die Standardausrichtung oder der Ausrichtung, welche mittels  align-item
  definiert wurde, für ein einzelnes Kind Element zu überschreiben.
 
Code:
 .item {
 align-self: auto | flex-start | flex-end | center | baseline | stretch ; 
 }
 
Es gelten die gleichen Erklärungen der Attributwerte, wie sie für  align-items
  gelten. |  float
 ,  clear
  und  vertical-align
  haben keinerlei Auswirkungen auf ein Flex Element. |  | Grundlagen und Terminologie
                        
                                    
                        | Da Flexbox ein komplettes Modul ist und nicht nur ein einzelnes Attribut, beinhaltet es selbst eine ganze Anzahl an Attributen. Einige davon werden auf den umschliessenden Eltern Container angewendet, andere auf dessen Kind-Elemente.Während ein normales Layout sowohl auf block als auch auf inline Fließrichtungen aufgebaut ist, basiert das Flexbox Layout auf dem flex-flow-Fluss.
 |  Legende
                        
                                    
                        | Attribute welche auf die Eltern Container angewendet werden, haben ein dunkleres Blau und Kind Elemente sind mit einem helleren Blau als dem, welches für Informationen verwendet wurde. |  flex-flow
                        
                                    
                        | Dies ist eine Kurzform für die Attribute  flex-direction
  und `flex-wrap, die zusammen das Verhalten für Quer und Längsachse eines Flex Containers definieren.
 
Code:
 .container {
 flex-flow: <flex-direction> || <flex-wrap> ;
 }
 |  Standardverhalten ist  row nowrap
 justify-content
                        
                                    
                        | Definiert die Anordnung entlang der hori- zontalen Achse.  justify-content
  hilft den übrigen freien Raum zu verteilen, wenn alleElemente in der Zeile unflexibel sind, oder wenn sie zwar flexibel sind, aber ihre maximale Größe bereits erreicht haben. Ermöglicht weiter die Anordnung von Elementen, wenn sie die Zeilenbreite überschreiten würden.
 
Code:
 .container {
 justify-content: flex-start | flex-end | center |space-between | space-around ;
 flex-start}
  (Standard): Die Elemente werden zum Anfang hin, nach links, verschoben.
flex-end : Die Elemente werden zum Ende hin, nach rechts, verschoben.
center : Die Elemente werden in der Mitte angeordnet.
space-between : Die Elemente werden gleichfürmig über die Zeile verteilt. Erstes Element ganz links, das Letzte ganz rechts.
space-around : Die Elemente werden gleichmäßig über die Zeile veteilt, haben aber an allen seiten den selben Abstand, sowohl zum Zeilenanfang/ende, als auch zum nächsten Element. |  Bei  space-around
  muss beachtet werden, da jedes Element immer den selben Abstand zum nächstgen Element hat, erzeugt das eine optisch ungleiche Verteilung. Das liegt daran, dass beim ersten Element links nur ein Abstand ist, aber zwischen den Elementen immer sich zwei Abstände addieren. align-content
                        
                                    
                        | Ordnet die Zeilen der Kind Elemente an, sollte es noch Platz geben in der Horizontalen. Ähnlich wie  justify-content
  individuelle Elemente an der Hauptachse ausrichtet.
 
Code:
 .container {
 align-content: flex-start | flex-end | center | stretch | space-between | space-around ;
 flex-start}
 : Richtet alle Zeilen nach oben links am Eltern Container aus.
flex-end : Richtet alle Zeilen nach unten links am Eltern Container aus.
center : Richtet alle Elemente mittig im Eltern Container aus.
stretch  (Standard): Richtet alle Elemente mittig im Eltern Container aus und verteilt sie gleichmäßig die Höhe der Elemente.
space-between : Richtet alle Zeilen über die volle Höhe des Eltern Containers aus. Die erste und letzte Zeile werden ganz an den Eltern Container angelegt.
space-around : Verteilt die Platz zwischen den Zeilen gleichmäßig. Jedoch ist auch hier das selbe optische "ungleichgewicht" zu beachten, wie es auch bei  justify-content
  entsteht. |  Hat keine Auswirkungen wenn es nur eine Zeile an Kind Elementen gibt. flex-grow
                        
                                    
                        | Definiert die Fähigkeit eines Elementes seine Größe zu verändern, sollte es nötig sein.  flex-grow
  akzeptiert einheitenlose Werte als Proportion. Dies definiert wie viel des maximalen Platzes ein Elementes, innerhalb eines Containers, ausnutzen kann. 
Haben alle Elemente das Attribut  flex-grow
 auf 1 gesetzt bekommen, wird der Platz zwischen den Elementen gleichmäßig unter seinen Kind-Elementen aufgeteilt.
 
Code:
 .item {
 flex-grow: <Zahl> ;
 }
 |  Negative Zahlen sind nicht zulässig! Der Standardwert für  flex-grow
  ist 0. flex-shrink
                        
                                    
                        | Definiert die Fähigkeit eines Kind Elementes zu schrumpfen. 
Code:
 .element {
 flex-shrink: <zahl> ;
 }
 |  Standardeinstellung für den Zahlenwert ist 1. Negative Zahlen sind nicht erlaubt. flex-basis
                        
                                    
                        | Definiert die Ausgangsgröße eines Elementes bevor der verbliebene Platz verteilt wird. Es kann sowohl ein Prozentwert (z.B. 25%), als auch ein fixer Wert (z.B. 3em|125px) angegeben werden. Aber auch ein Schlüsselwort ist möglich. Der Schlüssel  auto
  bedeutet, "beziehe dich auf die mir zugewiesene Breite/Höhe". Der Schlüssel  content
  bedeutet, die Größe ist anhängig vom Inhalt. Leider wird dieser Schlüssel noch nicht sonderlich gut unterstützt, daher ist es schwierig zu sagen, wie das Element sich verhält, ganz zu schweigen von seinen Abarten  max-content
 ,  min-content
 und  fit-content
 .
 
Code:
 .element {
 flex-basis: <wert> | <schlüsselwort> ;
 }
 |  Wird der Wert auf  0
 gesetzt, | 
            
Created By
www.pixel-anarchy.de
Metadata
Favourited By
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by The Exilant