UP

Układy z wykorzystaniem Flex-box

Można zrezygnować z floatów do rozmieszczania i układania elementów w CSS ):

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),

Struktura

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-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

Układy pionowe i poziome, kolejność elementów

flex-direction

flex-direction: column

flex-direction:column
Elementy wewnętrzne układają się pionowo, tak jak elementy blokowe, w takiej kolejności jak są wpisane w html.

flex-direction: column-rewerse

flex-direction:column-rewerse
Elementy wewnętrzne układają się pionowo, tak jak elementy blokowe, ale w odwrotnej kolejności

flex-direction row i row-reverse

flex-direction:row i row-rewerse
Elementy wewnętrzne układają się poziomo (in-line), odpowiednio w 1 rzędzie po kolei row, a w drugim,
w odwrotnej kolejności: row-rewerse.

Flex-wrap

Flex-wrap: wrap

flex-wrap:wrap
Elementy wewnętrzne przy zmianie rozmiaru strony zawijają się wrap czyli tworzą się kolejne wiersze w układzie: row, na ekranie standardowym 3 kolumny
flex-wrap:wrap
Elementy wewnętrzne przy zmianie rozmiaru strony zawijają się wrap czyli tworzą się kolejne wiersze w układzie: row, na mniejszym 2
flex-wrap:wrap
Elementy wewnętrzne przy zmianie rozmiaru strony zawijają się wrap czyli tworzą się kolejne wiersze w układzie: row, na urządzeniach mobilnych 1 element w wierszu

flex-wrap: nowrap (ustawienie domyślne)

flex-wrap:nowrap
Elementy wewnętrzne przy zmianie rozmiaru strony nie zawijają się nowrap czyli nie tworzą kolejnych wierszy i wyświetlają się tylko te, które mieszczą się w oknie.

Flex-flow

Jest to jednowierszowa, krótsza forma zapisu dla obu parametrów, tzn. flex-direction i flex-wrap.

flex-flow: row wrap

flex-flow:row wrap
Elementy wewnętrzne ustawiają się w wierszu in-line i w mniejszych rozmiarach okna zawijają się tworząc kolejne wiersze i redukując liczbę kolumn
flex-flow:row wrap
Elementy wewnętrzne ustawiają się w wierszu in-line i w mniejszych rozmiarach okna zawijają się tworząc kolejne wiersze i redukując liczbę kolumn
flex-flow:row wrap
Elementy wewnętrzne ustawiają się w wierszu in-line i w mniejszych rozmiarach okna zawijają się tworząc kolejne wiersze i redukując liczbę kolumn

Wyrównanie wszystkich elementów w pojemniku

Justify-content (wyrównanie w poziomie)

justify-content: center

justify-content: center
Środek w poziomie

justify-content: flex-start (domyślne)

justify-content: flex-start
Wyrównanie elementów od początku pojemnika

justify-content: flex-end

justify-content: flex-end
Wyrównanie elementów od końca pojemnika

justify-content: space-between

justify-content: space-between
Pojemniki układają się od początku pojemnika i odpowiednio zwiększają się (lub zmniejszają) odstęp pomiędzy poszczególnymi elementami pojemnika, nie ma odstępu przy brzegach.

justify-content: space-around

justify-content: space-around
Odstępy pomiędzy pojemnikami + odstęp od lewej i prawej krawędzi pojemnika (połowa wartości odstępu między pojemnikami, zwiększają się (są równe) i uzupełniają szerokość pojemnika

justify-content: space-evenly

justify-content: space-evenly
Odstępy pomiędzy pojemnikami + odstęp od lewej i prawej takie same

Align-items (wyrównanie w pionie)

align-items:center

align-items:center
Pojemniki układają się od początku pojemnika (jeżeli nie mają żadnych ustawień justify-content, a pionowo są na środku.

align-items:flex-start

align-items:flex-start
Pojemniki układają się od początku pojemnika w pionie

align-items:flex-end

align-items:flex-end
Pojemniki układają się od końca pojemnika w pionie

align-items:flex-stretch

align-items:flex-stretch
Pojemniki są rozciągane, tak aby wypełnić cały pojemnik w pionie.

align-items:baseline

align-items:flex-baseline
Pojemniki są wyrównane do linii bazowej teksu.

Align-content (wyrównanie całego wiersza w pionie)

align-content: space-between

align-content: space-between
Pionowe odstępy między poziomymi rzędami pojemników są takie same.

align-content: space-around

align-content: space-around
Pionowe odstępy między poziomymi rzędami pojemników są takie same i dodatkowo jest odstęp od górnej i dolnej krawędzi pojemnika (jego wartość to połowa wartości odstępu między kolejnymi rzędami.

align-content: space-evenly

align-content: space-evenly
Pionowe odstępy między poziomymi rzędami pojemników są takie same i dodatkowo jest odstęp od górnej i dolnej krawędzi pojemnika (taki sam jak pomiędzy rzędami)

align-content: stretch

align-content: stretch
Pojemniki wewnętrzne zwiększają swój rozmiar w pionie, tak aby wypełnić kontener.

align-content: center

align-content: center
Wszystkie rzędy (wiersze z pojemnikami) są wyśrodkowane w pionie.

align-content: flex-start

align-content: flex-start
Wszystkie rzędy (wiersze z pojemnikami) są wyrównane w pionie do góry (do początku).

align-content: flex-end

align-content: flex-end
Wszystkie rzędy (wiersze z pojemnikami) są wyrównane w pionie do dołu (do końca).

align-content: center i align-items: center

align-content: center  i align-items: center
Pojemnik (pojemniki) są idealnie wyśrodkowane w pionie i w poziomie.

Zmiana rozmiarów pojemników wewnętrznych

flex-grow zwększanie procentowe szerokości wybranego pojemnika

flex-grow:2”

flex-grow:2
Jeden z pojemników ma w stylu parametr 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.

flex-shrink zmniejszanie procentowe szerokości wszystkich pojemników, tak, żeby zmieściły się w pojemniku

align-items: stretch i flex-shrink:0

align-items: stretch i flex-shrink:0
Atrybut 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ść.

flex-basis konretny rozmiar

flex-basis, pozwala podać rozmiar, dla wybranego pojemnika

flex-basis:300px
Poleceniem style=”flex-basis:300px;” podajesz taka szerokość jaka Cię interesuje.

jedno-liniowy zapis dla flex-grow, flex-shrink, flex-basis

flex: 0 0 200px

flex: 0 0 200px
Polecenie 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 pionowe wyrównanie wewnętrznego pojemnika

align-self: flex-start,, center, flex-end

align-self: flex-start,, center, flex-end
Pojemniki 1, 2 3 mają atrybut 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.

Informacje

Artykuły

 
Valid   Icons from Glyphicons Free, licensed under CC BY 3.0Powrót do góry