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 w poprzednim
nagraniu opowiedziałem ci jak działa flex-grow i
w tej lekcji poznasz bardzo podobną właściwość którą
jest flex-shrink i flex-shrink tak samo jak flex-grow jest
właściwością która działa na dzieciach flexboxa
wartością domyślną dla flex-shrink jest
wartość 1 czyli w przeciwieństwie do flex-grow flex-shrink
jest zaaplikowane do wszystkich dzieci flex boxa równej proporcji natomiast
co robi flex-shrink flex-shrink odpowiada za to że jeśli że
jeśli nie zmienimy domyślnej wartości dla flex-wrap czyli zostawimy ją
na nowrap to elementy pomimo tego że nie
będą zawijały się do następnych linii będą mieściły
się w pojedynczej linii flexboxa czyli flex-shrink
definiuje jak bardzo dany element powinien kurczyć
się w stosunku do innych jeśli jest za mało miejsca w tej
konkretnej linii flexboxa no i możemy to analogicznie sprawdzić tak
jak ustaliliśmy flex-grow dla wszystkich elementów i wtedy one rozszerzały
się na całą szerokość linii to tutaj możemy ustawić
flex-shrink na 0 i zobaczymy że elementy
dalej są renderowane w jednej linii natomiast
nie skurczyły się ani trochę mają ustawioną swoją domyślną szerokość ustawioną
za pomocą flex-basis czy za pomocą właściwości width i
po prostu elementy które nie mieszczą się już na ekranie są
schowane za częścią kontenera która jest dostępna przy przescrollowaniu
wzdłuż osi poziomej czyli jeśli ustawimy
sobie flex-shrink na domyślnie jeden dla wszystkich natomiast
dla pojedynczej karty na przykład powiedzmy
tym razem piątej ustawimy flex-shrink na
0 to zobacz że karta piąta ani
troszkę nie skurczyła się to wszystkie pozostałe karty
wzdłuż tej konkretnej linii flexboxa zmniejszyły
się natomiast zmniejszyły się tak bardzo aby nie
wpłynąć na rozmiar karty numer 5 i żeby zmieścić
się z pozostałymi elementami które
mają flex-shrink włączony jeśli natomiast na karcie
numer 3 ustawimy
flex-shrink na 2 to ta karta
będzie kurczyć się dwa razy bardziej niż te karty
które mają na sobie flex-shrink 1 jest
to bardzo przydatna właściwość ponieważ często gdy tworzymy responsywne
layouty nie chcemy aby dany element kurczył
się nawet jeśli kontener się kurczy wtedy
możemy ustawić właśnie na tym konkretnym elemencie flex-shrink na
0 i wtedy to inne elementy wewnątrz tego kontenera będą
się kurczyć a nie ten konkretny element oczywiście flex-shrink
zadziała również jeśli ustawimy flex-wrap na wrap
natomiast zadziała to tylko wtedy jeśli w danej linii flexboxa
będzie już tylko jedna karta aby
to zasymulować możemy ustawić flex-basis powiedzmy
na 400 to te elementy dalej
będą się tutaj kurczyć i nie będziemy mieli tutaj
scrollowalnej sekcji więc flex-basis aplikowany jest wtedy
kiedy w danej linii flexboxa nie mieszczą się już poszczególne
elementy jeśli mamy ustawione flex-wrap to flex-shrink
działa tylko wtedy jeśli mamy jeden element na linie domyślnie jest
ustawione na 1 czyli każdy
element który jest pozycjonowany wewnątrz kontenera o własności
display flex będzie się kurczył chyba
że jawnie podamy mu że ma tego nie robić flex-grow
i flex-shrink są bardzo podobnymi właściwościami ponieważ
obie operują na proporcjach w stosunku
do swojego rodzeństwa więc jeśli zrozumiałeś flex-grow to
również flex-shrink nie powinno być w tym momencie problemem poćwicz
i do usłyszenia w kolejnej lekcji