09. TÉMA · CSS

Grid.

Kétdimenziós rács: sorok, oszlopok, rácsvonalak, területek

1. FEJEZET

Sávok és rácsvonalak

A display: grid a konténert rácsra osztja. A grid-template-columns az oszlopokat (függőleges sávokat), a grid-template-rows a sorokat írja le. A sávokat rácsvonalak határolják, ezeket 1-től számozzuk – három oszlophoz tehát négy függőleges vonal tartozik. A gyerekek alapból sorban, balról jobbra töltik ki a cellákat; ha elfogynak a megadott sorok, a böngésző újakat hoz létre (ezek az automatikus sorok).

PRÓBÁLD KI

grid-template-columns

1
2
3
4
5
6
7

stilus.css

Az fr egység a szabad hely egy része. A böngésző előbb levonja a rögzített sávokat (px, %, tartalomhoz igazodó sávok) és a hézagokat, a maradékot pedig az fr számok arányában osztja szét. A 150px 1fr 2fr rácsban a 150 px-es oszlop után maradt helyből az utolsó oszlop kétszer annyit kap, mint a középső.

A repeat(3, 1fr) ugyanaz, mint 1fr 1fr 1fr; a minmax(150px, 1fr) legalább 150 px, legfeljebb 1fr széles sávot jelent.

2. FEJEZET

Hézag a sávok között: gap

A column-gap az oszlopok, a row-gap a sorok közé tesz hézagot (a régi neve grid-gap volt). A hézag csak a sávok között van, a rács szélén nincs; a rácsvonal a hézag közepén halad.

PRÓBÁLD KI

column-gap, row-gap

1
2
3
4
5
6
stilus.css

3. FEJEZET

Elhelyezés vonalszámokkal

Egy elem több cellát is elfoglalhat. A grid-column: 1 / 3 azt jelenti: az 1-es függőleges vonaltól a 3-asig tart – vagyis két oszlopot fog át (a záró vonal nem a cella sorszáma!). Ugyanez sorokra a grid-row. A span 2 forma azt mondja: két sávon át, akárhol kezdődik.

PRÓBÁLD KI

Hová kerül a kiemelt elem?

a sorszámok a rácsvonalakat jelölik
kiemelt
a
b
c
d
e
f
g

stilus.css

4. FEJEZET

Elnevezett területek: grid-template-areas

Teljes oldalak vázához kényelmesebb, ha a rácsot rajzként írjuk le: minden idézőjeles sor egy rácssor, a benne álló nevek a cellák. Az azonos nevű szomszédos cellák egy téglalap alakú területté állnak össze, a gyerekelemeket pedig a grid-area tulajdonsággal tesszük a területükre. A pont (.) üres cellát jelöl.

PRÓBÁLD KI

Három tipikus oldalváz

header
sidebar
main
widgets
footer
stilus.css

5. FEJEZET

Reszponzív rács médialekérdezés nélkül: auto-fill és auto-fit

A repeat(auto-fill, minmax(120px, 1fr)) annyi legalább 120 px-es oszlopot hoz létre, amennyi elfér. A két kulcsszó csak akkor viselkedik másképp, ha kevesebb az elem, mint az oszlop:

  • auto-fill: az üres oszlopok megmaradnak (helyet foglalnak), az elemek nem szélesednek tovább;
  • auto-fit: az üres oszlopok összecsuklanak (0 szélességűek lesznek), és a meglévő elemek kitöltik a sort.

PRÓBÁLD KI

Ugyanaz a négy elem, kétféle rács

szaggatott keret = üres oszlop

repeat(auto-fill, minmax(120px, 1fr))

repeat(auto-fit, minmax(120px, 1fr))

ÖSSZEFOGLALÁS

Amit érdemes megjegyezni

  • Grid = két dimenzió: oszlopok és sorok egyszerre; flexbox = egy tengely.
  • A rácsvonalak 1-től számozódnak; grid-column: 1 / 3 két oszlopot fog át.
  • Az fr a szabad hely aránya, a rögzített sávok és a hézagok levonása után.
  • A gap csak a sávok között van.
  • grid-template-areas: rajzszerű oldalváz; minden területnek téglalapnak kell lennie.
  • auto-fill megtartja, auto-fit összecsukja az üres oszlopokat.