edubun
Bahasa Indonesia

Dasar-dasar grid

grid-template-columns: repeat(3, 1fr) membuat tiga kolom sama lebar dalam satu baris kode, dan browser menaruh setiap anak ke sel kosong berikutnya.

Baris dan kolom sekaligus

Grid, modul CSS Grid Layout, dibuat untuk tata letak dua dimensi: baris dan kolom bersamaan. Kamu menggambar grid pada wadah, lalu item-item jatuh ke dalam selnya. Kalau flexbox berangkat dari item dan membiarkannya menentukan ukuran sendiri, grid berangkat dari tata letak lalu memasukkan item ke dalamnya. Karena itu grid adalah alat yang wajar untuk galeri foto, daftar kartu, dan bentuk keseluruhan halaman dengan kepala, bilah samping, konten utama, dan kaki.

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);  /* three equal columns */
  gap: 10px;
}
.gallery .wide { grid-column: span 2; }    /* this item covers two columns */
Galeri tiga kolom dengan satu item lebar.

Track dan satuan fr

grid-template-columns mendaftar lebar setiap kolom, yang disebut track. Kamu bisa memakai panjang apa pun, seperti 200px 1fr, tetapi grid menambahkan satuannya sendiri: fr, satu bagian dari ruang kosong. 1fr 1fr 1fr membuat tiga kolom sama lebar; 2fr 1fr membuat kolom pertama dua kali selebar kolom kedua. Satuan fr hanya membagikan ruang yang tersisa sesudah track tetap dan celah, jadi 200px 1fr memberi bilah samping 200 piksel dan membiarkan kolom utama mengambil sisanya. repeat(3, 1fr) adalah cara yang lebih singkat untuk menulis 1fr 1fr 1fr. grid-template-rows melakukan hal yang sama untuk baris, tetapi sering kali baris dibiarkan saja agar setinggi kontennya.

repeat(3, 1fr) dengan celah 20px. Angka-angka di bagian bawah adalah garis grid, 1 sampai 4. Item hijau membentang dua kolom, dari garis 1 sampai garis 3.

Menempatkan item

Secara bawaan, item mengisi grid sesuai urutan di sumber, satu sel masing-masing, dari kiri ke kanan lalu ke baris berikutnya. Untuk membuat item lebih besar, grid-column: span 2 membuatnya menutupi dua kolom, dan grid-row: span 2 dua baris. Garis di antara track diberi nomor mulai dari 1, jadi grid tiga kolom punya garis 1 sampai 4, dan grid-column: 1 / 3 berarti dari garis 1 sampai garis 3. grid-column: 1 / -1 merentangkan item selebar penuh, karena angka negatif dihitung dari ujung.

Memberi nama area

Untuk tata letak halaman, grid-template-areas memungkinkanmu menggambar tata letak dengan kata-kata. Setiap string bertanda kutip adalah satu baris dan setiap kata adalah satu sel; mengulang sebuah kata membuat area membentang di sel-sel itu. Lalu setiap item diberi grid-area dengan nama yang cocok. Tata letak di bawah hampir terbaca seperti sketsa: kepala melintang di atas, bilah samping dan konten utama berdampingan, dan kaki di bawah. Mengubah tata letak untuk ponsel cukup dengan menulis ulang beberapa string ini, sering kali di dalam media query.

.page {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-areas:
    "head head"
    "side main"
    "foot foot";
  gap: 16px;
}
header { grid-area: head; }
aside  { grid-area: side; }
main   { grid-area: main; }
footer { grid-area: foot; }
Tata letak satu halaman penuh yang digambar dengan nama area.

Kolom yang menyesuaikan layar

Satu pola dari panduan grid MDN layak dihafal: grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)). minmax(150px, 1fr) menyatakan setiap kolom paling sedikit 150 piksel dan boleh membesar untuk berbagi ruang, dan auto-fill membuat kolom sebanyak yang muat. Hasilnya galeri yang menampilkan dua kolom di ponsel dan lima atau enam di layar lebar, lagi-lagi tanpa media query. Seperti flexbox, grid bisa menaruh item dengan urutan yang berbeda dari HTML, dan peringatan yang sama berlaku: samakan urutan baca dengan urutan tampilan.

wadah gridInduk dengan display: grid
trackSatu baris atau satu kolom grid
frSatu bagian dari ruang kosong
repeat(3, 1fr)Sama dengan 1fr 1fr 1fr
garis gridBernomor mulai dari 1; 3 kolom punya garis 1 sampai 4
span 2Item menutupi dua track
grid-template-areasMenggambar tata letak dengan nama, satu string per baris
minmax()Ukuran track antara minimum dan maksimum
  1. Grid dirancang untuk tata letak dalam berapa dimensi?
  2. Grid 600px punya kolom 1fr 2fr tanpa celah. Berapa lebar kolom kedua?
  3. Grid 700px punya kolom 200px 1fr dan celah 20px. Berapa lebar kolom 1fr?
  4. Berapa garis kolom (garis grid vertikal) pada grid 4 kolom?
  5. Apa fungsi grid-column: 1 / -1?
    • Merentangkan item melintasi semua kolom
    • Menyembunyikan item
    • Menaruhnya hanya di kolom terakhir
  6. repeat(4, 1fr) adalah singkatan untuk apa?
    • 1fr 1fr 1fr 1fr
    • 4fr
    • 1fr 4fr
  7. Dalam grid-template-areas, satu string bertanda kutip mewakili apa?
    • Satu baris
    • Satu kolom
    • Satu item
  8. Properti mana yang menempatkan item ke area bernama?
  9. Apa arti minmax(150px, 1fr) untuk sebuah kolom?
    • Paling sedikit 150px, membesar untuk berbagi ruang kosong
    • Tepat 150px
    • Paling banyak 150px
  10. Mana yang cocok untuk tata letak halaman dua dimensi dengan kepala, bilah samping, dan kaki?
    • grid
    • flexbox
    • float
Poin penting
  • display: grid ditambah grid-template-columns menggambar track; fr membagikan ruang kosong.
  • Item mengisi sel secara berurutan; span dan nomor garis menempatkannya.
  • grid-template-areas menggambar tata letak halaman dengan nama; repeat(auto-fill, minmax()) menyesuaikan kolom dengan layar.
Sumber kursus ini (6)
  • W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
  • MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
  • W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
  • W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
  • 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
  • every code exercise checked with a Playwright probe against a reference solution.

Diperiksa: 2026-10-17