Der Unterschied zwischen "flex" und "inline-flex"
Kurze Antwort:
One ist inline und der andere antwortet im Grunde wie ein Block-Element (aber einige seiner eigenen hat Unterschiede).
Lange Antwort:
Inline-Flex - Die Inline-Version von Flex ermöglicht es das Element, und es ist Kinder, flex Eigenschaften zu haben, während noch in dem regelmäßigen Fluss der Dokument/Webseite zu bleiben. Grundsätzlich können Sie zwei Inline-Flex-Container in derselben Zeile platzieren, wenn die Breite klein genug ist, ohne dass Sie übermäßiges Styling benötigen, damit sie in derselben Zeile vorhanden sind. Dies ist ziemlich ähnlich zu "Inline-Block".
Flex - Der Container und seine untergeordneten Elemente haben Flexeigenschaften, aber der Container reserviert die Zeile, da sie aus dem normalen Dokumentfluss entnommen wird. Es reagiert wie ein Blockelement auf den Dokumentenfluss. Zwei Flexbox-Container können nicht in der gleichen Reihe ohne übermäßiges Styling existieren.
Das Problem, das Sie mit sein kann
Aufgrund der Elemente, die Sie in Ihrem Beispiel aufgeführt, obwohl ich vermute, ich glaube, Sie wollen flex verwenden, um die Elemente in einer geraden Reihe-für- aufgelistet angezeigt werden Reihe Mode aber weiterhin die Elemente nebeneinander zu sehen.
Der Grund, warum Sie wahrscheinlich Probleme haben, liegt daran, dass flex und inline-flex die Standardeinstellung "flex-direction" -Eigenschaft auf "row" gesetzt haben. Dies zeigt die Kinder Seite an Seite. Wenn Sie diese Eigenschaft in "column" ändern, können Ihre Elemente so gestapelt und reserviert werden, dass der Abstand (Breite) der Breite des übergeordneten Elements entspricht.
Im Folgenden finden Sie einige Beispiele, die zeigen, wie flex vs inline-flex funktioniert und auch eine kurze Demonstration der Funktionsweise von Inline- und Blockelementen ...
display: inline-flex; flex-direction: row;
Fiddle
display: flex; flex-direction: row;
Fiddle
display: inline-flex; flex-direction: column;
Fiddle
display: flex; flex-direction: column;
Fiddle
display: inline;
Fiddle
display: block
Fiddle
Auch eine gute Referenz doc: A Complete Guide to Flexbox - css tricks
OP, wie Sie auf eine der bereitgestellten Antwort markieren * akzeptiert * durch das Häkchen auf der klicken linke Seite der Antwort. – domsson