Dzięki Flex można łatwiej przygotować responsywny układ strony bez konieczności używania float i position.
Przede wszystkim należy zdefiniować flex pojemnik (container), i elementy, które znajdą się wewnątrz (flex items),
Konieczne są: pojemnik zewnętrzny i wewnętrzne elementy, które będą układane flexem.
Pojemnik musi mieć display wybrane na flex i wtedy każdy element, który się w nim znajdzie automatycznie będzie podlegał ustawieniom flex.
Dodatkowe opcje to:
flex-directionflex-wrapflex-flowjustify-contentalign-itemsalign-content
row, a w drugim,row-rewerse.
wrap czyli tworzą się kolejne wiersze w układzie: row, na ekranie standardowym 3 kolumny
wrap czyli tworzą się kolejne wiersze w układzie: row, na mniejszym 2
wrap czyli tworzą się kolejne wiersze w układzie: row, na urządzeniach mobilnych 1 element w wierszu
nowrap czyli nie tworzą kolejnych wierszy i wyświetlają się tylko te, które mieszczą się w oknie.Jest to jednowierszowa, krótsza forma zapisu dla obu parametrów, tzn. flex-direction i flex-wrap.
in-line i w mniejszych rozmiarach okna zawijają się tworząc kolejne wiersze i redukując liczbę kolumn
in-line i w mniejszych rozmiarach okna zawijają się tworząc kolejne wiersze i redukując liczbę kolumn
in-line i w mniejszych rozmiarach okna zawijają się tworząc kolejne wiersze i redukując liczbę kolumn
justify-content, a pionowo są na środku.
flex-grow:2, co powoduje, że otrzymuje szerokość 2 razy większą od pozostałych, jeżeli pozostałe pojemniki mają parametr style=”flex-grow:1”, wtedy zachowują wyjściową szerokość, jeżeli nie, mogą być zwężone po to aby ten, który ma ustawienie flex-grow:2 rzeczywiście miał 2 razy większą szerokość od pozostałych i żeby wszyscy zmieścili się w pojemniku kontenerze.
align-items:stretch, powoduje dopasowanie rozmiarów pojemników wewnętrznych, odpowiednio zwężając je tak aby wszyscy zmieścili się w rzędzie, jeżeli jedne z nich ma ustawienie: style=”flex-shrink:0”, to ten pojemnik nie zostaje zwężony i zachowuje wyjściową szerokość.
style=”flex-basis:300px;” podajesz taka szerokość jaka Cię interesuje.
style=”flex: 0 0 300px;” dla drugiego pojemnika, oznacza pierwsze 0, odwołuje się do flex-grow:0, czyli ma nie być zwiększany, drugie 0 do flex-shrink, czyli ma nie być zmniejszany, a 300px do flex-basis czyli podaje jego konkretną szerokość. Możemy również spotkać się z zapisem flex:25%co oznacza, że flex-growi flex-shrink mają wartość: 1
align-self odpowiednio ustawiony na : flex-start, center i flex-end powoduje, że ich wysokość, nie zostaje rozciągnięta do rozmiaru pojemnika tylko zachowuje automatyczną wysokość zależną od zawartości i jest wyrównana w pionie do góry, środka i dołu w stosunku do pozostałych.