2 Punkte von GN⁺ 2025-01-06 | 1 Kommentare | Auf WhatsApp teilen
  • Der CSS Flexbox Playground ist ein Lernwerkzeug, mit dem sich Flexbox-Eigenschaften in Echtzeit verändern lassen, um Layout-Änderungen zu beobachten
  • Durch das Anpassen der Steuerelemente lässt sich direkt vergleichen, wie sich Flex-Einstellungen auf die Anordnung auf dem Bildschirm auswirken
  • Das Standardbeispiel startet mit der Kombination display: flex, flex-direction: row, justify-content: space-around, align-items: flex-start, flex-wrap: nowrap
  • Die Elemente 1 bis 5 auf dem Bildschirm bewegen sich je nach geänderter Einstellung, sodass sich das Layout-Ergebnis leicht visuell nachvollziehen lässt
  • Der erzeugte CSS-Code kann kopiert werden, wodurch sich die getesteten Einstellungen gut in echten Code übernehmen lassen

Interaktives Werkzeug für Flexbox-Experimente in Echtzeit

  • Der CSS Flexbox Playground ist ein interaktives Werkzeug zum Lernen und Experimentieren mit Flexbox-Eigenschaften
  • Wenn die Steuerelemente angepasst werden, werden Layout-Änderungen in Echtzeit übernommen
  • Der als Ergebnis des Experiments erzeugte CSS-Code kann kopiert werden

Standard-Beispielkonfiguration

  • Die Beispielkonfiguration für .container verwendet das folgende CSS
.container {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: nowrap;
}
  • Auf dem Bildschirm werden die Elemente 1, 2, 3, 4, 5 angezeigt, sodass sich das Ergebnis der Flexbox-Anordnung überprüfen lässt

1 Kommentare

 
GN⁺ 2025-01-06
Meinungen auf Hacker News
  • Flexbox selbst ist einfach und logisch, aber die Namen der Properties und Werte wurden offenbar auf Komitee-Art festgelegt und sind daher nicht intuitiv
    Wenn man sich zu merken versucht, was nun justify-content und was align-items ist, gibt man am Ende auf und probiert einfach herum, bis es funktioniert

    • Den CSS-Tricks-Flexbox-Guide https://css-tricks.com/snippets/css/a-guide-to-flexbox/ schaut man jedes Mal wieder nach
      Es gibt auch einen ähnlichen Guide für Grid, und der ist ebenfalls hervorragend
    • Bei Flexbox ist es unglaublich schwer, sich die nötigen Einstellungen dafür zu merken, wie Boxen in Boxen liegen, ob Inhalte eine Box füllen oder die Box den Inhalt umschließen soll
      Besonders wichtig ist das in SPAs, wenn Boxen den Bildschirm füllen, aber nicht überlaufen sollen. Am Ende streut man überall völlig unintuitive Einstellungen wie min-width: 0 ein, dreht noch an ein paar anderen Dingen, und irgendwie funktioniert es dann
      Man könnte vermutlich ein paar CSS-Klassen bauen, die all das abdecken, aber eine Lösung für wirklich alle Fälle habe ich noch nicht gefunden
    • Wenn man im CSS-Inspector von Chrome auf das Icon neben einer display: flex-Regel klickt, werden mehrere Flexbox-Properties als Icons visualisiert und lassen sich per Klick direkt setzen
      Damit wird praktisch jede Seite zum Experimentierfeld
    • Beeindruckend ist, dass Tailwind das noch verwirrender gemacht hat
      justify-content: center wird zu justify-center, align-items: center zu items-center – keine Ahnung, warum man das so gemacht hat
    • justify-content hätte main-axis heißen sollen, align-items entsprechend cross-axis
      Wenn man das versteht, wird Flexbox insgesamt leicht
  • Wurde zwar schon oft genannt, aber ich habe Flexbox Froggy https://flexboxfroggy.com/ immer empfohlen, und andere haben es damit schnell gelernt
    Zum Lernen von CSS Grid ist auch https://cssgridgarden.com/ gut

    • Die Gamification von cssgridgarden gefällt mir
      Ähnlich wie https://www.codemonkey.com/, das eher für Kinder gedacht ist
    • Eine Flexbox-Lesezeichenseite, die der von OP sehr ähnlich ist, ist https://flexbox.tech/
      Für Bootstrap-Code ist https://build.layoutit.com/ nützlich, und für CSS Grid gibt es https://grid.layoutit.com/. Schade ist nur, dass Ersteres nicht Bootstrap 5, sondern nur bis Bootstrap 4 unterstützt
    • Ich habe flexboxfroggy ausprobiert; das Konzept ist gut und die Umsetzung gelungen, aber die fehlende Syntax-Autovervollständigung stört ziemlich
  • Ich empfehle Joshs Guide https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/ sehr
    Er behandelt ausführlich fortgeschrittenere Fallstricke und Tipps wie flex-basis, automatische Margins und min-width

    • Das war mit das Beste, was ich dazu gelesen habe
      Ich dachte, ich kenne mich mit Flexbox und Tailwind-CSS-Komponenten ziemlich gut aus, aber dieser Artikel hat genau den Bedarf nach einer theoretischen Grundlage gestillt
  • Ein guter Playground
    Vor ein paar Jahren habe ich einen interaktiven Guide erstellt, der am Ende einen ähnlichen Playground enthält: https://lik.ai/guides/an-interactive-guide-to-flexbox/
    Er war gelegentlich nützlich, um die Erinnerung aufzufrischen

  • Es ist 2025, zwei Jahre und drei Tutorials später, und ich kann Flexbox immer noch nicht richtig benutzen
    https://flexboxfroggy.com/ hat auch nicht viel geholfen

    • Nachdem ich Flexbox ein paar Jahre genutzt habe, ist mir klar geworden: Flexbox ist wie einen USB-A-Stecker einzustecken
      justify und align sind beim ersten Versuch immer vertauscht
    • Ich weiß nicht, warum es so schwer zu merken ist
      Alles Mögliche, einschließlich CSS-Float-Layouts, bleibt mir jahrelang im Kopf, aber wenn ich Flexbox ein paar Monate nicht benutze, vergesse ich 80 % davon und muss wieder von vorn lesen und Zeit im Playground verbringen
      Das Problem ist, dass es zu viele Property-Namen gibt, von denen sich viele nicht intuitiv anfühlen oder einfach falsch benannt wirken. Selbst ein- oder zweibuchstabige Symbolnamen wären vermutlich ähnlich gut gewesen
    • flexboxfroggy kenne ich, aber ich lerne lieber „spielend“, statt zu lesen und zu schreiben, daher war diese Seite für mich nicht nützlich
      Ich hoffe, dieses Tool hilft; wenn etwas fehlt, wäre Feedback gut
  • Warum heißen diese Eigenschaften eigentlich justify-content und align-items?
    main-axis-arrangement und cross-axis-alignment wären doch sinnvoller, oder?

    • Es gibt sicher Erklärungen dafür, aber insgesamt sind viele CSS-Eigenschaften verwirrend und wenig intuitiv.
      Das gilt auch für Dinge wie color, text-align, position: absolute und position: fixed; selbst absolute ist technisch gesehen immer noch relativ.
    • Aus Sicht der Diskussion passen diese Namen sowohl zu Grid als auch zu Flexbox und auch zur Konvention mit justify-items und justify-self, insofern ist es konsistent.
      Trotzdem verwechsle ich es immer noch mit align-content.
    • Auch dass die Kurzschreibweise grid-template zuerst die y-Achse angibt, ist verwirrend: y1 / x1 / y2 / x2
      Außerdem beginnt es nicht einmal bei 0, sodass ich es jedes Mal wieder vergesse.
    • Ich weiß nicht, ob Google so sehr darauf konzentriert ist, mit LLMs Spoiler zu Encanto 2 auszugeben, dass seine Suchfähigkeiten verkümmert sind, oder ob meine Überraschung berechtigt ist, dass es so ein Tailwind-Plugin noch nicht gibt.
      Ein Tailwind-Alias-Plugin, das etwa cross-axis-center auf align-items: center und main-axis-between auf justify-content: space-between abbildet, ließe sich schnell bauen.
    • Ich habe mir als Eselsbrücke gemerkt: „Text in meiner Sprache zu justifyen heißt horizontale Ausrichtung“, und war deshalb nicht verwirrt.
      Natürlich kann man das ändern, aber das Standardverhalten von Flexbox wird von dieser Eselsbrücke abgedeckt.
  • Als ich Flexbox gelernt habe, habe ich ein Cheat Sheet erstellt, um Eigenschaften nachzuschlagen.
    Es könnte auch für andere nützlich sein: https://darekkay.com/flexbox-cheatsheet/

    • Mir gefällt, dass man den Effekt sofort sieht, auch ohne etwas auszuwählen, und dass MDN-Links dabei sind.
  • Als schnelle visuelle Cheat Sheet ist es gut, aber am Ende muss man es wohl an vielen Stellen in Projekten verwenden, damit es in Fleisch und Blut übergeht.
    Die Syntax ist größtenteils selbsterklärend, aber row und column sind die Ausnahme.
    Mit Flexbox oder Grid hatte ich meistens keine großen Probleme, aber ich sehe, dass viele Leute damit durcheinanderkommen. Wenn man das Box-Modell versteht und die Firefox-Entwicklertools nutzt, hilft das sehr beim Lernen des Flexbox-Modells. Sie visualisieren Container ziemlich gut, und inzwischen scheint Chrome DevTools etwas Ähnliches zu können.
    flexboxfroggy und cssgridgarden waren ebenfalls nützlich zum Üben. Trotzdem öffne ich jedes Mal das CSS-Tricks-Cheat-Sheet, um die Syntax nachzuschlagen, und ob es row oder column ist, treffe ich beim ersten Versuch nie.

    • Chrome/Edge haben eine gute Funktion, die Firefox anscheinend nicht hat.
      Man kann den Flex-Modus schnell ein- und ausschalten: https://imgur.com/a/17iy1eN
  • Dieses Tool wirkt sehr eingeschränkt, weil es nur vier Container-Eigenschaften behandelt.
    Die in Flexbox ziemlich wichtigen Eigenschaften der Kindelemente fehlen komplett.

  • Eine interessante Sammlung von Aufgaben zum Üben von CSS-Layouts wäre schön.
    Gute Erläuterungen und Erklärungen wären hilfreich, ebenso Debugging-Aufgaben wie „Warum erzeugt dieses Codefragment nicht das gewünschte Layout?“.
    Beim Debuggen von CSS-Problemen war ChatGPT ziemlich hilfreich. Es liegt nicht immer richtig, weist aber meistens in die richtige Richtung. Trotzdem möchte ich tiefer verstehen, wie CSS tatsächlich funktioniert. Ich habe Bücher und Tutorials gelesen und weiß, dass es letztlich ein Regelwerk ist, aber die genaue Anwendung ist schwierig.

    • Ich nutze Claude auf ähnliche Weise.
      Ich bitte oft darum, CSS so zu korrigieren und neu zu schreiben, dass es wie gewünscht aussieht, und das geht viel schneller, als Dokumentation zu durchsuchen.