od Podstaw
4 godz. 7 min · HTML i CSS · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerFlexbox nie jest trudny - pod warunkiem, że rozumiemy dlaczego elementy renderują się w konkretny sposób. Do tego potrzebna jest szczegółowa wiedza o osiach flexboxa, o tym jak ustalane są ich kierunki i jak elementy będą układać się wzdłuż nich.Dopiero wtedy dobrze można zrozumieć jak działa rozszerzanie i kurczenie elementów, jak elementy będą zachowywać się przy zmianie rozmiaru okna przeglądarki czy przy przełączaniu wyświetlania z układu wierszy na kolumnowy. To wszystko oraz kilka innych mechanizmów ukrytych we Flexboxie znajdziesz dokładnie wyjaśnione w tym kursie - podgląd przykładów czy dodatkowe quizy po zakończeniu kursu pomogą w utrwaleniu zdobytej wiedzy.
Wielu developerów nie jest świadomych, że korzystanie z niektórych właściwości Flexboxa wpływa na dostępność naszych stron WWW - dostosowywanie naszych witryn pod czytniki ekranowe oraz użytkowników korzystających z witryn w sposób niestandardowy to temat który zyskuje na coraz większej popularności (zwłaszcza, jeśli planujesz kiedyś tworzyć strony rządowe - te są zobligowane do tworzenia stron dostępnych dla osób niepełnosprawnych).W tym kursie, dowiesz się jakie problemy może nieść za sobą używanie flexboxa i jak ich unikać.
Kurs ten jest dla wszystkich osób, które dobrze czują się z CSS - wystarczy podstawowa umiejętność pisania selektorów. Nie ma żadnych wymagań dotyczących JavaScript, czy znajomości konkretnych frameworków. Natomiast jeśli do tej pory korzystałeś/aś z innych, starszych technologii do pozycjonowania elementów i chcesz nauczyć się prostszej, dobrze wspieranej współczesnej technologii - nie trać czasu! Flexbox to idealne wprowadzenie do kolejnych sposobów pozycjonowania jak np. CSS Grid.
Cześć witam cię w kolejnej lekcji z kursu flexbox od
podstaw i tym razem opowiem ci troszkę o shorthand czyli
właściwościach które są tak naprawdę skrótami dla innych właściwości
i pierwszą taką właściwością jest flex-flow który
ustawia właściwości dla kontenera flexboxa czyli
wpisując flex-flow mamy możliwość ustawienia flex-direction
oraz flex-wrap
w takim formacie flex-flow
przyjmuje parametry czyli jeśli teraz wpiszemy
flex-flow powiedzmy column
wrap to elementy
będą kolumnowo no i oczywiście będą się zawijać jeśli
będzie zbyt mało miejsca jeśli zmienimy
to na column-reverse wrap to
oczywiście kierunek osi podstawowej zostanie odwrócony
no i oczywiście zawijanie wierszy dalej będzie
aktywne jeśli odwrócimy sobie wrap na wrap-reverse
to tak samo oś przeciwstawna zmieni kierunek elementy
dalej będą zawijane no i oczywiście możemy analogicznie ustawiać
wartości powiązane dla row więc jest to bardzo wygodne jeśli już
dobrze czujemy się z flexboxem i chcemy oszczędzić te kilka
bajtów przy wysyłaniu kodu do faktycznych użytkowników
bądź po prostu chcemy szybko sprototypować konkretny
layout w kontekście oszczędzania bajtów tutaj bym nie kierował
się używając shorthand'ów ponieważ są do tego osobne narzędzia takie jak task-runner'y
na przykład gulp bądź odpowiednie pluginy do webpacka więc
kod który będziemy pisali i tak będzie minificowany zanim zostanie wysłany
do użytkowników a my możemy pisać w ten jawny
sposób który będzie na pewno prostszy
do przyswojenia ja tutaj zaadoptuje
obecne rozwiązanie czyli przepisze flex-flow na row
nowrap tak żeby pasował naszemu obecnemu
ustawieniu skóry i te właściwe gdy wykomentuje oczywiście
wszystko wygląda dalej tak samo nawet jeżeli byśmy wpisali tutaj inne wartości
niż domyślna przykład row-reverse to flex-flow faktycznie
działa analogiczną do flex-flow właściwością dla dzieci
które są pozycjonowane flexboxem jest
właściwość flex po prostu flex bez niczego
i flex ma taką składnię że pierwszym argumentem jest flex-grow
drugim jest flex-shrink a trzecim jest
flex-basis my tutaj mamy tylko
i wyłącznie ustawione flex-basis na wartość nie domyślną w
naszym przypadku na każdej naszej karcie więc może też ten
shorthand więc może ten shorthand nie ma tutaj tak
dużego sensu natomiast jeśli chcielibyśmy to przepisać tak aby nie
używać tego flex-basis tylko shorthanda moglibyśmy wpisać flex tutaj
zero jako domyślna wartość dla flex-grow flex-shrink
na 1 jako domyślna wartość dla flex-shrink no
i flex-basis na 100 pikseli jako wartość dla
flex-basis i teraz jak wykomentujemy oczywiście to flex-basis to wszystko działa w ten sam sposób natomiast
jeśli chcielibyśmy aby wszystkie elementy flexa
domyślnie rosły i na przykład nie kruszyły się możemy to zapisać w
ten sposób i możemy również pominąć właściwość flex-shrink
zostawiając zapis w tej postaci czyli pierwszy
parametr musi być liczbą naturalną i jeśli drugi
parametr jest wartością określającą
rozmiar czyli na przykład 100 pikseli 100% 100 viewport height i
tak dalej to wtedy flex-basis zostanie zaaplikowane
jako drugie i to tyle jeśli chodzi o shorthandy we flexboxie są
to po prostu zapisy skrócone właściwości które już dobrze znasz
jeśli chcesz spróbuj przepisać jeden z
poprzednich przykładów bądź własny projekt tak by używał on
wyżej wymienionych shorthandów natomiast poza
ćwiczeniami nie używaj ich na siłę do usłyszenia w kolejnej lekcji