Grid: Areas — CSS

Coba tulis denah rumah pake kotak-kotak: tiap ruangan kasih nama. Lalu anak kamu cukup baca: "ruang tamu di kanan, dapur di belakang." Kebayang lebih jelas…

Di Grid, tiap bagian halaman bisa diberi nama, misalnya header, sidebar, content, lalu layout-nya digambar pakai nama-nama itu, kayak denah rumah. Buat satu item yang cuma perlu melebar, ada cara yang lebih singkat: suruh dia menempati beberapa kolom dengan span.

🧪 Tebakan cepat: di peta "header header" "sidebar content", header selebar berapa kolom? Tebak dulu, jawabannya ada di bagian "Gambar layout dengan grid-template-areas".

Gambar layout dengan grid-template-areas

.page {
  display: grid;
  grid-template-columns: 120px 1fr;
  grid-template-areas:
    "header  header"
    "sidebar content"
    "footer  footer";
  gap: 8px;
}

.header  { grid-area: header; }
.sidebar { grid-area: sidebar; }
.content { grid-area: content; }
.footer  { grid-area: footer; }

Hasilnya, header di atas selebar halaman, sidebar sempit di kiri, konten lebar di kanan, dan footer di bawah selebar halaman. Jadi ada dua bagian: peta di container, nama area di tiap item.

Mau satu sel dibiarkan kosong? Tulis titik . di tempatnya, misalnya ". footer".

Melebar beberapa kolom dengan span

.header {
  grid-column: span 2;
}

grid-column: span 2 bikin item menempati dua kolom berturut-turut, tanpa perlu peta. Bisa juga ditulis pakai nomor garis: grid-column: 1 / 3, artinya dari garis kolom 1 sampai garis 3. Garis adalah batas antar kolom, jadi grid dua kolom punya tiga garis.

⚠️ Jebakan yang sering ketemu

💡 Ubah layout tanpa ubah HTML. Tulis ulang grid-template-areas di dalam media query, misalnya jadi satu kolom buat layar HP, dan semua bagian halaman pindah tempat tanpa menyentuh HTML-nya.

TL;DR: grid-template-areas menggambar layout di container: satu string per baris, satu kata per kolom, nama yang sama bersebelahan jadi satu area, titik . buat sel kosong. Lalu tiap item diberi grid-area: nama biar masuk ke areanya. Buat satu item yang cuma perlu melebar, pakai grid-column: span 2.

Yang akan kamu pelajari