Zaawansowane layouty
3 godz. 3 min · HTML i CSS · Full-stack i Programowanie
Wojciech PołowniakSr. Fullstack EngineerW początkowych lekcjach Kursu omówimy podstawową składnię CSS Grid, tak, by zbudować solidny fundament pod poznawanie kolejnych, bardziej rozbudowanych zagadnień. Na praktycznych przykładach poznasz i zrozumiesz różnice, jakie są pomiędzy CSS Grid a CSS Flexbox.
Po poznaniu niezbędnych, podstawowych zagadnień związanych ze składnią CSS Grid przejdziemy do tematu wykorzystania siatek. Wykorzystamy je do stworzenia responsywnych layoutów bez użycia media queries.
W kolejnych, bardziej rozbudowanych lekcjach kursu poznasz implikacje dotyczące dostępności. W obszernym rozdziale omówimy również szerzej najczęstsze błędy i nieporozumienia związane z CSS Grid.
Tak jak każda technologia, Grid ma swoje wady i zalety. Omówimy zarówno pierwsze, jak i drugie, tak, by wykorzystać pełen potencjał CSS Grid i nie dać się zniechęcić przez pewne jego wady. Dowiesz się również nieco na temat nadchodzących elementów w specyfikacji CSS Grid module level 2.
Aby być na bieżąco - warto uważnie śledzić najważniejsze i najbardziej aktualne źródła związane z CSS Grid. W końcowych rozdziałach pokażemy Ci naszym zdaniem najciekawsze źródła oraz osoby związane z Gridem, które warto znać oraz obserwować.
Jeśli chcesz poznać najbardziej aktualną i świetnie wspieraną metodę pozycjonowania elementów jaką jest CSS Grid, ten kurs jest właśnie dla Ciebie! Aby efektywnie korzystać z tego kursu potrzebujesz jedynie podstawowej wiedzy z zakresu HTML i CSS - a jeśli znasz Flexboxa, na pewno będzie Ci łatwiej zrozumieć niektóre koncepty.
Cześć w poprzednich lekcjach css grid zaawansowane layouty omówiliśmy
jak tworzyć konkretne kolumny jak tworzyć wiersze
konkretnego rozmiaru i generalnie czym tory jak je
pozycjonować czyli ustaliliśmy że każda wartość dla na przykład
grid-template-columns oznacza jedną kolumnę i każde kolejne
kolumny deklarujemy poprzez kolejne wartości oddzielone spacją
czyli jeśli stworzymy sobie powiedzmy 7 kolumn
o szerokości 100 pikseli no to musimy 7 razy napisać
wartość 100 pikseli każdą z nich rozdzielić spacją jest to zdecydowanie
nieoptymalne ponieważ po pierwsze będzie niewygodnie dla nas aktualizować
wszystkie te wartości jeśli chcielibyśmy aby te kolumny miały
teraz szerokość 75 pikseli no to każda z nich musiałaby być ręcznie
aktualizowana na wartość 75 pikseli no
i oczywiście to zajmuje czas a poza tym jest to po prostu nieoptymalne w tym kontekście
że wszystkie te dane będą wysyłane do przeglądarki naszego klienta no
i te dane będzie musiał ściągnąć w związku z czym nasza strona może się renderować
wolniej oczywiście jest to dosyć mikroskala natomiast
tak czy siak natomiast tak czy siak można to zoptymalizować
i możemy to zrobić za pomocą funkcji repeat funkcja repeat
wygląda w ten sposób że jako pierwszy argument podajemy ilość kolumn którą
chcemy zadeklarować czyli powiedzmy w naszym przypadku było to 7 no i drugi argument
jest to rozmiar danej kolumny jeśli to zapiszemy
no to widzimy że mamy 7 kolumn po 100 pikseli i
jeśli chcielibyśmy żeby każda z nich miała teraz szerokość 75 pikseli
wystarczy że zmienimy to w jednym miejscu a silnik
css sam przetłumaczy te wartości na pojedyncze kolumny
oczywiście możemy też korzystać z funkcji repeat w gridzie dla właściwości takich
jak grid-template-rows i możemy wpisać tutaj powiedzmy trzy
po 150 pikseli i jeśli to zapiszemy to
faktycznie widzimy że każdy z nich ma 150 pikseli możemy usunąć zmniejszyć
liczbę tych kolumn powiedzmy na 3 wtedy będziemy mieli więcej wierszy
no i zmienić domyślną szerokość auto rows powiedzmy na
100 pikseli i jak widzimy faktycznie trzy wiersze mają
wysokość 150 pikseli no pozostałe są automatycznie wygenerowane z
wysokością 100 pikseli no i mamy 3 kolumny każda po 75 pikseli
co ciekawe możemy też deklarować kolumny używając
pojedynczych jednostek oraz funkcji repeat czyli jeśli chcielibyśmy aby tutaj
doszła nam jedna kolumna która będzie miała szerokość całą taką
jaka jest dostępna faktycznie w danej siatce no to możemy pod koniec
tej deklaracji napisać 1fr i faktycznie mamy
jedną kolumnę po prawej stronie która zajmuje całą dostępną przestrzeń analogicznie
możemy zadeklarować taką kolumnę po lewej stronie i
teraz mamy dwie równe kolumny w każdym ze skrai
siatki css grid no i 3 równe
kolumny o szerokości 75 pikseli na jej środku
no i oczywiście możemy również powtórzyć użycie
tej funkcji deklarując powiedzmy dwie kolumny o szerokości
200 pikseli no i w tym momencie kolumny
z szerokością 1fr są troszkę krótsze niż faktycznie jawnie deklarowane
kolumny o szerokości 200 pikseli natomiast mamy możliwość
takich kombinacji do każdej właściwości css będziemy z tej
notacji korzystać bardzo dużo w kolejnych lekcjach więc upewnij się
że rozumiesz jak działa funkcja repeat do zobaczenia w kolejnej lekcji