Rozvržení stránky pomocí oblastí
Mřížka se skvěle hodí i pro rozvržení celé stránky. Naše stránka má čtyři části: záhlaví (header), menu (nav), hlavní obsah (main) a zápatí (footer). Menu dáme doleva vedle obsahu, záhlaví nad ně a zápatí pod ně, obojí přes celou šířku.
Jednotlivé části bychom mohli umístit pomocí čísel čar mřížky, ale existuje přehlednější způsob: části mřížky si můžeme pojmenovat a rozvržení v CSS nakreslit. Hodnota vlastnosti grid-template-areas (šablona oblastí) obsahuje jeden řetězec (text v uvozovkách) pro každý řádek mřížky. Do řetězce napíšeme jméno pro každý sloupec tohoto řádku. Sousední buňky se stejným jménem tvoří dohromady jednu oblast.
body {
display: grid;
grid-template-columns: 8rem 1fr;
grid-template-areas:
"zahlavi zahlavi"
"menu obsah"
"zapati zapati";
}Tato mřížka má dva sloupce a tři řádky. Oblast zahlavi zabírá oba sloupce prvního řádku, menu a obsah si dělí druhý řádek a zapati zabírá celý poslední řádek. Sloupec s menu je široký 8rem a obsah dostane zbytek. Jména oblastí si vymýšlíme sami a nemusí se shodovat s názvy prvků. Každé jméno je jedno slovo bez mezer.
Potom vlastností grid-area (oblast mřížky) řekneme každému prvku, do které oblasti patří. Jméno se tu píše bez uvozovek:
nav {
grid-area: menu;
}Na dvě věci je potřeba dát pozor: všechny řetězce musí mít stejný počet jmen a každá oblast musí mít tvar obdélníku. Jinak prohlížeč celou deklaraci ignoruje. Buňku, která má zůstat prázdná, označíme tečkou (.).
Jak psát:
"
{
}
#
Pokyny
Do pravidla pro body přidejte deklarace display: grid a grid-template-columns: 8rem 1fr. Čtyři části stránky zatím vyplní buňky jedna po druhé, a to ještě není, co chceme.
Do stejného pravidla přidejte vlastnost grid-template-areas se třemi řádky z ukázky výše: "zahlavi zahlavi", "menu obsah" a "zapati zapati". Zatím se nic nezmění: plán je nakreslený, ale prvky ještě nevědí, kam patří.
Umístěte prvky do oblastí: do pravidla pro header přidejte deklaraci grid-area: zahlavi, do pravidla pro nav deklaraci grid-area: menu, do pravidla pro main deklaraci grid-area: obsah a do pravidla pro footer deklaraci grid-area: zapati.
Začněte programovat zdarma
5/7