Cara Menggunakan CSS Grid untuk Layout Responsif

CSS Grid adalah sistem tata letak dua dimensi yang memungkinkan kamu mengatur elemen secara baris dan kolom sekaligus. Berbeda dengan Flexbox yang bekerja satu dimensi, Grid sangat...

Cara Menggunakan CSS Grid untuk Layout Responsif

CSS Grid adalah sistem tata letak dua dimensi yang memungkinkan kamu mengatur elemen secara baris dan kolom sekaligus. Berbeda dengan Flexbox yang bekerja satu dimensi, Grid sangat cocok untuk membuat layout halaman yang lebih kompleks seperti dashboard, galeri foto, atau struktur halaman penuh. Artikel ini akan membahas cara menggunakan CSS Grid dengan contoh nyata yang mudah dipahami.

Apa Itu CSS Grid?

CSS Grid Layout adalah modul CSS yang memberikan sistem grid berbasis baris dan kolom. Dengan Grid, kamu bisa menentukan ukuran kolom, baris, jarak antar sel, dan posisi setiap elemen dengan sangat presisi. Dukungan browser untuk CSS Grid sudah sangat baik โ€” hampir semua browser modern mendukungnya.

Mengaktifkan CSS Grid

Sama seperti Flexbox, Grid diaktifkan dengan properti display:

.container {
  display: grid;
}

Setelah ini, semua elemen anak langsung menjadi grid item.

Mendefinisikan Kolom dengan grid-template-columns

Ini adalah properti paling penting dalam CSS Grid. Kamu menentukan jumlah dan ukuran kolom:

.container {
  display: grid;
  grid-template-columns: 200px 200px 200px; /* 3 kolom 200px */
}

/* Menggunakan satuan fr (fraction) */
.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* 3 kolom sama lebar */
}

/* Shorthand dengan repeat() */
.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* sama dengan di atas */
}

Mendefinisikan Baris dengan grid-template-rows

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100px auto 60px; /* header, konten, footer */
}

Jarak Antar Sel dengan gap

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;         /* jarak baris dan kolom */
  /* row-gap: 16px; */
  /* column-gap: 24px; */
}

Contoh Praktis: Layout Tiga Kolom Responsif

Berikut cara membuat galeri tiga kolom yang responsif menggunakan auto-fill dan minmax():

<div class="galeri">
  <div class="kartu">Item 1</div>
  <div class="kartu">Item 2</div>
  <div class="kartu">Item 3</div>
  <div class="kartu">Item 4</div>
  <div class="kartu">Item 5</div>
  <div class="kartu">Item 6</div>
</div>

<style>
.galeri {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 20px;
  padding: 20px;
}

.kartu {
  background: #e3f2fd;
  padding: 24px;
  border-radius: 8px;
  text-align: center;
  font-weight: bold;
}
</style>

Dengan auto-fill dan minmax(200px, 1fr), kolom akan otomatis menyesuaikan jumlahnya berdasarkan lebar layar.

Contoh Praktis: Layout Halaman Penuh

CSS Grid sangat ideal untuk membuat struktur halaman klasik (header, sidebar, konten, footer):

<div class="halaman">
  <header class="header">Header</header>
  <aside class="sidebar">Sidebar</aside>
  <main class="konten">Konten Utama</main>
  <footer class="footer">Footer</footer>
</div>

<style>
.halaman {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar konten"
    "footer footer";
  grid-template-columns: 250px 1fr;
  grid-template-rows: 60px 1fr 50px;
  min-height: 100vh;
  gap: 8px;
}

.header  { grid-area: header;  background: #1e293b; color: white; padding: 16px; }
.sidebar { grid-area: sidebar; background: #f1f5f9; padding: 16px; }
.konten  { grid-area: konten;  background: white;   padding: 16px; }
.footer  { grid-area: footer;  background: #334155; color: white; padding: 16px; }
</style>

Menempatkan Item di Posisi Tertentu

Kamu bisa menentukan posisi item secara eksplisit menggunakan grid-column dan grid-row:

.item-lebar {
  grid-column: 1 / 3; /* mulai kolom 1, akhir sebelum kolom 3 */
}

.item-tinggi {
  grid-row: 1 / 3; /* membentang dua baris */
}

/* Shorthand */
.item-span {
  grid-column: span 2; /* membentang 2 kolom */
}

Tips Menggunakan CSS Grid

  • Gunakan grid-template-areas untuk layout yang lebih mudah dibaca dan dipahami.
  • Kombinasikan auto-fill dengan minmax() untuk layout responsif tanpa media query.
  • Gunakan browser DevTools (F12) untuk memvisualisasikan garis-garis grid.
  • Flexbox dan Grid bisa digunakan bersama โ€” Grid untuk layout besar, Flexbox untuk komponen kecil.

Kesimpulan

CSS Grid adalah solusi terbaik untuk membuat layout dua dimensi yang kompleks dan responsif. Dengan memahami grid-template-columns, grid-template-areas, dan fungsi seperti repeat() serta minmax(), kamu sudah siap membangun berbagai jenis layout halaman web modern. Latih terus dengan membuat berbagai struktur halaman menggunakan CSS Grid.

css grid grid layout display grid grid template columns layout responsif tutorial css
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’