Różnica między „flex” a „inline-flex”
Krótka odpowiedź:
Jeden jest wbudowany, a drugi w zasadzie reaguje jak element blokowy (ale ma pewne własne różnice).
Dłuższa odpowiedź:
Inline-Flex - wbudowana wersja flex pozwala elementowi i jego dzieciom na posiadanie właściwości flexu, pozostając jednocześnie w regularnym przepływie dokumentu / strony internetowej. Zasadniczo można umieścić dwa wbudowane elastyczne kontenery w tym samym rzędzie, jeśli szerokości były wystarczająco małe, bez nadmiaru stylizacji, aby mogły istnieć w tym samym rzędzie. Jest to dość podobne do „bloku wbudowanego”.
Flex - kontener i jego elementy podrzędne mają właściwości flex, ale kontener rezerwuje wiersz, ponieważ jest on wyjęty z normalnego przepływu dokumentu. Pod względem przepływu dokumentów reaguje jak element blokowy. Dwa kontenery Flexbox nie mogłyby istnieć w tym samym rzędzie bez nadmiernej stylizacji.
Problem, który możesz mieć
Z powodu elementów wymienionych w twoim przykładzie, choć zgaduję, myślę, że chcesz użyć flex, aby wyświetlić elementy wymienione w sposób równomierny rząd po rzędzie, ale nadal widzieć elementy obok siebie.
Prawdopodobnie występują problemy, ponieważ flex i inline-flex mają domyślną właściwość „flex-direction” ustawioną na „row”. Spowoduje to wyświetlenie dzieci obok siebie. Zmiana tej właściwości na „kolumna” pozwoli na układanie elementów w stos i rezerwowanie miejsca (szerokości) równego szerokości jego elementu nadrzędnego.
Poniżej znajduje się kilka przykładów pokazujących, jak działają flex vs inline-flex, a także krótka prezentacja tego, jak działają elementy inline vs block ...
display: inline-flex; flex-direction: row;
Skrzypce
display: flex; flex-direction: row;
Skrzypce
display: inline-flex; flex-direction: column;
Skrzypce
display: flex; flex-direction: column;
Skrzypce
display: inline;
Skrzypce
display: block
Skrzypce
Również świetny dokument referencyjny:
Kompletny przewodnik po Flexbox - sztuczki css
inline-flex
iflex
: jsfiddle.net/mgr0en3q/1 Oryginalne skrzypce autorstwa @ fish-graphic i @astridx