webroad.online
  1. 1Web
  2. 2HTML
  3. 3CSS
  4. 4JavaScript
  5. 5TypeScript
  6. 6Git
  7. 7Unelte
  8. 8React
  9. 9State management
  10. 10Next.js
  11. 11Formulare
  12. 12Date și backend
  13. 13SEO
  14. 14Tailwind CSS
  15. 15Animații
  16. 16Testare
  17. 17Arhitectură
CSS · Lecția 4 din 8

CSS Grid

Layout pe două dimensiuni: fr, repeat, minmax, auto-fit și zone.

Actualizat

Ce este CSS Grid

Grid e sistemul de layout pe două dimensiuni: definești pe părinte rânduri și coloane, iar copiii se așază în celule. E cel mai puternic instrument de layout din CSS.

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

Unitatea fr

fr = o fracțiune din spațiul rămas. 1fr 2fr → a doua coloană e de două ori mai lată decât prima.

Definiție Rezultat
200px 1fr sidebar fix + conținut care umple restul
repeat(3, 1fr) 3 coloane egale
1fr auto conținut + o coloană cât îi trebuie
minmax(200px, 1fr) minim 200px, maxim o fracțiune

Grid responsive fără media queries

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
}

Încape câte coloane de minim 16rem pot intra; restul se distribuie egal. Pe mobil — o coloană, pe desktop — 3 sau 4, automat.

auto-fit vs auto-fill: cu puține elemente, auto-fit le întinde să umple rândul; auto-fill păstrează coloane goale.

Plasarea copiilor

.featured { grid-column: span 2; }        /* ocupă 2 coloane */
.full     { grid-column: 1 / -1; }        /* de la prima la ultima linie */
.sidebar  { grid-row: 1 / 3; }            /* două rânduri */

Liniile grid-ului sunt numerotate de la 1; -1 e ultima.

Zone cu nume

Pentru layout-uri de pagină, zonele sunt cele mai lizibile:

.layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
}
.layout header { grid-area: header; }
.layout aside  { grid-area: sidebar; }

Aliniere

Proprietate Aliniază
justify-items / align-items conținutul în fiecare celulă
justify-content / align-content tot grid-ul în container
place-items: center prescurtare — centrare în celule

Tipuri de layout cu grid — și când

Layout Definiție
coloane egale repeat(3, 1fr)
sidebar + conținut 280px 1fr (ca pagina asta)
carduri responsive repeat(auto-fit, minmax(16rem, 1fr))
pagină cu zone grid-template-areas
holy grail (header, 3 coloane, footer) zone + minmax

Pe scurt

  • Grid = rânduri + coloane, definite pe părinte.
  • fr împarte spațiul rămas; minmax + auto-fit = responsive fără media queries.
  • Flex pentru o axă, grid pentru două.

Surse oficiale

Exerciții

Ți-a fost utilă pagina?

Un click — fără cont.