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 tej lekcji omówimy pokrótce wszystkie właściwości css grida
skorzystamy do tego ze strony css reference kropka io no
i tutaj mamy sekcję poświęconą konkretnie gridowi jedną
właściwością jest grid area i grid area pozwala
nam na ustawienie elementów na naszej siatce w określonym
miejscu czy jeśli zadeklarowalibyśmy sobie pomocą grid-template-columns że
to ma być header header header tutaj content i tutaj sidebar
no to ustawiając grid-area na nazwę na przykład header nasz
element pojedynczy element html rozciągnie się na te trzy kolumny czy
jeśli damy content no to w tym momencie na dwie i sidebar tutaj na
tą jedną bez pierwszego wiersza domyślnie jest to wartość auto
czyli jeśli niektóre elementy nie będą miały
ustawione grid-area czyli na przykład stworzymy sobie element
header element content ale elementu sidebar nie stworzymy nie nadamy tutaj
grid-area sidebar no to ten element zostanie automatycznie tutaj umieszczony
ale może to faktycznie powodować różne problemy przy tworzeniu responsywnych
layoutów na przykład wersji mobilnych danej witryny z czym też spotkaliśmy się już w poprzednich
lekcjach z tego kursu grid-auto-columns działa tak samo jak grid-auto-rows
czyli pozwala na generowanie dodatkowych kolumn w
momencie kiedy nie zadeklarujemy ich jawnie poprzez explicit grid
warto zaznaczyć że grid-auto-columns zadziała tylko wtedy jeśli ustawimy
grid-auto-flow na column wtedy elementy nadmiarowe tak
jak tutaj stworzyliśmy header header header sidebar main main zostaną
dodane tutaj w wolne miejsce na stronie z grid-auto-columns będziemy
jeszcze korzystali w przykładzie gdzie będziemy tworzyli własną tablicę
trello na podstawie grida nie będziemy jej kolorować natomiast będziemy tworzyli
schemat taki jak na trello grid-auto-flow pozwala
nam na zmianę sposobu renderowania czyli domyślnie albo w osi
poziomej albo w osi pionowej no i możemy też do grid-auto-flow dać
wartość dense aby zagęścić nasz layout i sprawić
że elementy które zostawiły po sobie dziury to znaczy nie
zmieściły się po prostu w jednym wierszu były przeniesione na sam początek naszego
grida grid-auto-rows działa analogicznie do grid-auto-columns o którym właśnie powiedzieliśmy
no i tak jak możemy ustawiać grid-column pierwszą
wartość na powiedzmy index numer 2 w tym przypadku
żeby umieścić to na tej linii i po slashu podać drugą wartość na
przykład numer 3 tutaj no to możemy też pojedynczo te wartości
przypisywać do odpowiednich właściwości czyli jeśli
wpiszemy grid-column end no to będzie druga
część tego zapytania czyli grid-column 2 3
to jeśli wpiszemy w grid column end wartość 3 no
to będzie to ekwiwalent tego zapisu z tym że nie ustawimy po
prostu tej dwójki grid-columns start oczywiście działa w sposób analogiczny możemy
też ustawiać odstępy pomiędzy kolumnami i wierszami osobno
czyli nie musimy korzystać z grid-gap aby
ustawiać równy odstęp między wierszami i
kolumnami możemy użyć osobno grid-column-gap aby
stworzyć margines między kolumnami w ten sposób no albo
analogicznie grid-row-gap aby ustawić to w osi poziomej
dla wierszy grid-column-start omówiliśmy grid column to
jest shorthand z którego korzystaliśmy przez wszystkie poprzednie lekcje grid-gap to
też jest shorthand grid-row tak samo omówiliśmy grid-row
grid-template-areas pozwala nam na ustalenie poprzez
stringi tego jak chcemy aby nasz layout się układał no
i możemy nawet te ciągi znaków zapisać w osobnych liniach żeby to lepiej sobie
zwizualizować możemy nawet wyrównać to tabulacją grid-template-columns
służy do deklarowania ilości kolumn w naszej siatce grid-template-rows
ilości wierszy w naszej siatce no
i grid-template jest to skrót dla grid-template rows columns
i grid-template-areas jeśli faktycznie
czujecie się na tyle swobodnie z gridem możecie zacząć używać tych shorthandów
ja ich unikam ponieważ osobiście uważam je za dosyć nieczytelne i
preferuję używać ich osobno po prostu żeby jawnie komunikować
się z innymi deweloperami którzy też tworzą layouty na gridzie możecie też
analogicznie do flexa użyć samej właściwości grid
która jest maksymalnym shorthandem maksymalną notacją skróconą jaką możecie w
gridzie otrzymać no i jest kombinacją wszystkich właściwości które
możemy na gridzie ustawić do tego oczywiście podchodzą jeszcze justify-content
justify-self i tak dalej natomiast te powiązane stricte
z gridem są tutaj strona css reference kropka io
jeśli chcecie dowiedzieć się więcej zapraszam