Flexboxen - align-content und align-items
Rolf B
- flexbox
- wiki
Hallo alle,
auf Grund der Änderungen einer IP am Wiki-Artikel CSS/Eigenschaften/align-content habe ich mich nochmal mit dem Thema auseinandergesetzt - das ist nämlich tatsächlich nicht so ganz einfach.
Nach einem ersten Überarbeiten von CSS/Tutorials/Flexbox/Ausrichtung - Ausrichtung entlang der Querachse brauche ich nun ein Beispiel, das die Zusammenhänge verdeutlicht. Und wenn einen so der Wahnsinn mal gepackt hat...
Guckt mal hier - sicherlich noch nicht fertig, und auf kleinen Bildschirmen nicht brauchbar.
Es enthält zwei geschachtelte Flexboxen. Die äußere (blaues Outline) besteht aus einer h2 Überschrift und einem div Element, das wieder eine Flexbox ist (rotes Outline).
Für die blaue und rote Flexbox kann align-content und align-items auf verschiedene Werte gesetzt werden. Aktiviert man baseline
oder last baseline
, werden zusätzliche Hilfslinien eingeblendet, die die Text-Baseline visualisieren (oh Boy, das war Gebastel, bis das im Firefox und Chrome gleiche Ergebnisse hatte).
Äh, baseline
? last baseline
? Whut?! CSS Box Alignment Level 3 lässt grüßen. Es gibt auch first baseline, aber das ist synonym zu baseline. Laut Mozilla ist die Unterstützung bei Chromia noch mau, aber bei mir hat es schon prima funktioniert. Pale Moon dürfte darob nur die Stirn runzeln. Die Spec macht vage Andeutungen, dass es eine "innere" und eine "äußere" Baseline für Boxen gäbe, weshalb ich zwei Flexboxen geschachtelt habe, um das ergründen zu können.
Jedenfalls hat das h2 Element links grüne Hilfslinien und zwei der Paragraphen im Textbereich haben rot gestrichtelte Hilfslinien, auf der ersten und der letzten Zeile. Dazu haben die beiden linken Textboxen noch einen kleinen Füll-::before drin, damit man von der baseline-Ausrichtung auch was merkt.
Erkenntnisse:
Die rote Flexbox bitte erstmal wieder auf unset und unset setzen.
Wo ist nun der Unterschied zu align-content? Man setze es auf start, center oder end. Nun wirken die Einstellungen bei align-items immer noch, aber die Bewegung ist viel geringer, weil die Flexbox-Reihen niedriger geworden sind!
Spannend ist nun die Interaktion der Baselines von blauer und roter Flexbox.
blau=baseline,rot=baseline: SELF und die erste Textzeile fluchten baseline, last baseline: SELF und die letzte Textzeile der oberen Box fluchten!
Soweit sogut, dies tun Chrome und Firefox identisch. Aber nun:
blau=last baseline, rot=baseline:
blau=last baseline, rot=last baseline:
Wer hat den Bug? @Gunnar Bittersmann, kennst Du das?
Und ich frag mich - wie vermittelt man all das in einem Tutorial?
Rolf