{%hackmd anYwyN--TziyASUWcqP-Gw %} # Tvořím web A–Z 2: lekce 04 <span>14. 4. 2021 | 18:00 - 20:00 | Praha</span> Lekce 04 - CSS Grid Jan Čuma --- # Zarovnání v gridu - hodně se podobá zarovnání ve flex-boxu - kdo si pamatuje nebo zná flexbox má výhodu - standard u většiny prohlížečů - používá se <code>align-items</code>, <code>justify-items</code>, <code>place-items</code>, <code>justify-content</code>, <code>align-content</code>, <code>place-content</code>, <code>align-self</code>, <code>justify-self</code> --- # align-items, justify-items - <code>align-items</code> - jedná se o vertikální zarovnání - <code>justify-items</code> - jedná se o horizontální zarovnání - zarovnává všechny koponenty v **buňce** gridu - týká se všech položek v gridu - deklarace se uvádí u grid containeru - může nabývat následujících hodnot: - <code>start</code> = nahoru | doleva - <code>end</code> = dolu | doprava - <code>center</code> = doprostřed - <code>stretch</code> = roztáhnout do buňky --- # place-items - zkratka pro obě předchozí - zarovnává v obou osách - zápis jednoduchý, stejný pro obě osy - <code>place-items: center;</code> - zápis složený, různý pro každou osu - <code>place-items: |align-items| |justify-items|;</code> - <code>place-items: center stretch;</code> --- # align-content, justify-content - určuje pozici celého gridu v rámci kontejneru - vhodné v případech, kdy je obsah gridu menší než kontejner, na kterém je grid aplikován - lze využít pokud používáme nedynamické jednotky jako třeba <code>px</code> - zarovnáváme jednolivé řádky a sloupce podle deklarace - <code>align-content</code> - vertikální osa - <code>justify-content</code> - horizontální osa - může nabývat následujících hodnot: - <code>start</code> = nahoře | vlevo - <code>end</code> = dole | vpravo - <code>center</code> = uprostřed - <code>stretch</code> = roztažený - <code>space-around</code> = místo kolem - <code>space-between</code> = místo mezi - <code>space-evenly</code> = stejné místo kolem i mezi --- # place-content - zkratka pro obě předchozí - zarovnává v obou osách - zápis jednoduchý, stejný pro obě osy - <code>place-content: center;</code> - zápis složený, různý pro každou osu - <code>place-content: |align-content| |justify-content|;</code> - <code>place-content: center stretch;</code> --- # align-self, justify-self - <code>align-self</code> - jedná se o vertikální zarovnání - <code>justify-self</code> - jedná se o horizontální zarovnání - zarovnává komponentu uvnitř buňky gridu - týká se vždy jednotlivé komponenty uvnitř buňky - deklarace se uvádí u grid komponenty - může nabývat následujících hodnot: - <code>start</code> = nahoru | doleva - <code>end</code> = dolu | doprava - <code>center</code> = doprostřed - <code>stretch</code> = roztáhnout do buňky --- # place-self - zkratka pro obě předchozí - zarovnává v obou osách - zápis jednoduchý, stejný pro obě osy - <code>place-self: center;</code> - zápis složený, různý pro každou osu - <code>place-self: |align-self| |justify-self|;</code> - <code>place-self: center stretch;</code> --- # grid-auto-rows - specifikuje velikost implicitně vytvořených řad ```css= .container { /* každá řada má výšku 50px */ grid-auto-rows: 50px; /* každá řada má min výšku 10px max podle obsahu */ grid-auto-rows: minmax(10px, auto); } ``` --- # grid-auto-flow - určuje, jak bude fungovat algoritmus pro umísťování prvků do mřížky - může nabývyat následujících hodnot - <code>row</code> - vykreslení po řádcích (default) - <code>column</code> - vykreslení po sloupcích - <code>dense</code> - vykreslení po řádcích, s vyplněním prázdných míst - <code>column dense</code> - vykreslení po sloupcích, s vyplněním prázdných míst ```css= .container { /* pokud chceme nastavit šířku impl. vytvořených sloupců, zkombinujeme následující hodnoty */ grid-auto-flow: column; grid-auto-columns: 60px; } ``` --- # Responzivita 1/2 - lze jí dosáhnout pomocí <code>media-queries</code> - nebo ještě doplněním funkce <code>repeat()</code> - <code>auto-fill</code> a <code>auto-fit</code> - <code>auto-fill</code> doplňuje neviditelné sloupce nebo řádky pro vyplnění containeru - <code>auto-fit</code> upravuje dynamicky šířku sloupců nebo řádků pro vyplnění containeru - <code>fit-content</code> nastaví maximální šířku sloupce. Pokud je obsah širší dojde k jeho zalomení. Velice podobné chování jako funkce <code>minmax()</code> s tím rozdílem, že <code>minmax()</code> má tendence vždy zabírat maximální možné místo --- # Responzivita 2/2 <img src="https://www.vzhurudolu.cz/prirucka-content/dist/images/medium/auto-fill-fit.png" style="max-height: 180vh;" /> --- # Procvičování [CSS Grid Garden](http://cssgridgarden.com/#cs) --- # Druhá stage domácího úkolu 1. přidejte do vaší stránky grid 2. využijte alespoň 10 deklarací css gridu, které jsme si ukázali (mohou se opakovat) 3. použijte funkci <code>repeat()</code> i <code>minmax()</code> 4. použijte alespoň 2 ze zarovnávacích deklarací z dnešní lekce 5. dosáhněte responzivního vzhledu vaší stránky buď pomocí css gridu nebo <code>media-queries</code> --- # Konec <span>14. 4. 2021 | 18:00 - 20:00 | Praha</span> Lekce 04 - CSS Grid Jan Čuma
{"metaMigratedAt":"2023-06-15T22:47:53.212Z","metaMigratedFrom":"YAML","title":"Lekce 04 | Tvořím web A–Z 2","breaks":false,"lang":"cs","slideOptions":"{\"transition\":\"none\",\"theme\":\"night\",\"margin\":0.05,\"minScale\":0.1,\"maxScale\":5,\"width\":2560,\"height\":1600}","contributors":"[{\"id\":\"0770b77c-5054-4cf7-a577-a646d73ab89a\",\"add\":5537,\"del\":0}]"}
    324 views