Panduan Pemula untuk CSS Grid: Cara Membuat Tata Letak yang kuat

Selamat datang, para ahli desain web masa depan! Hari ini, kita akan melihat dunia yang magis dari CSS Grid. Jangan khawatir jika Anda belum pernah menulis satu baris kode sebelumnya – saya akan menjadi panduan ramah bagi Anda dalam perjalanan ini. Pada akhir tutorial ini, Anda akan dapat membuat tata letak seperti seorang ahli!

CSS - Grid

Apa Itu CSS Grid?

CSS Grid adalah seperti superhero untuk tata letak web. Itu adalah sistem dua dimensi yang memungkinkan Anda mengatur konten di baris dan kolom. Bayangkan Anda menata furnitur di dalam ruangan – itu seperti apa yang dilakukan Grid untuk halaman web Anda!

Mengapa Anda Harus Peduli?

Sebelum Grid, kita sering kesulitan dengan floats dan posisi untuk membuat tata letak yang kompleks. Itu seperti mencoba membangun rumah dengan tape pipa! Grid membuatnya mudah dan intuitif. Percayalah, setelah 15 tahun mengajar, saya telah melihat kelegaan di wajah murid-murid saat mereka menemukan Grid.

Memulai dengan CSS Grid

mari mulai dengan contoh yang sederhana. Bayangkan kita membuat tata letak halaman web dasar dengan header, konten utama, sidebar, dan footer.

<div class="container">
<header>Header</header>
<main>Main Content</main>
<aside>Sidebar</aside>
<footer>Footer</footer>
</div>

Sekarang, mari tambahkan sedikit magia CSS:

.container {
display: grid;
grid-template-areas:
"header header header"
"main main sidebar"
"footer footer footer";
gap: 10px;
}

header { grid-area: header; background-color: #ff9999; }
main   { grid-area: main; background-color: #99ff99; }
aside  { grid-area: sidebar; background-color: #9999ff; }
footer { grid-area: footer; background-color: #ffff99; }

Apa yang terjadi di sini? Kita mengatakan kepada kontainer untuk ditampilkan sebagai grid dan menentukan tata letak menggunakan grid-template-areas. Itu seperti menggambar peta halaman web kita!

Properti grid CSS

Properti grid adalah singkatan untuk mengatur semua properti grid eksplisit sekaligus. Itu seperti pisau瑞士 Army knife untuk Grid!

Nilai yang Mungkin

Berikut adalah tabel nilai yang mungkin untuk properti grid:

Nilai Deskripsi
none Tidak ada perilaku grid yang ditentukan
<grid-template> Menentukan ukuran kolom dan baris grid
<grid-template-rows> / <grid-auto-columns> Mengatur properti grid-template-rows dan grid-auto-columns
<grid-auto-flow> [<grid-auto-rows> [ / <grid-auto-columns> ] ] Mengatur properti grid-auto-flow, dan secara opsional mengatur grid-auto-rows dan grid-auto-columns

Terapkan ke

Properti grid diterapkan ke elemen kontainer grid. Itu seperti mengatakan, "Hey, elemen ini adalah bos dari tata letak grid!"

Sintaks DOM

object.style.grid = "none|<grid-template-rows> / <grid-template-columns>|<grid-auto-flow> [<grid-auto-rows> [ / <grid-auto-columns>] ]|initial|inherit";

Jangan khawatir jika ini terlihat seperti bahasa asing saat ini. Kita akan membongkarannya!

CSS Grid - <grid-template>

Nilai <grid-template> memungkinkan Anda menentukan struktur grid Anda. Itu seperti membuat blueprint untuk tata letak Anda.

.container {
grid: 100px 300px / 3fr 1fr;
}

Ini menciptakan grid dengan dua baris (100px dan 300px tinggi) dan dua kolom (3fr dan 1fr lebar). Unit fr adalah seperti "sebagian ruang yang tersedia" – sangat berguna!

CSS Grid - minmax() dan repeat()

Fungsi ini adalah seperti duo dinamis Grid:

  • minmax() menentukan ukuran minimum dan maksimum untuk sebidang.
  • repeat() memungkinkan Anda mengulangi definisi sebidang.
.container {
grid: repeat(3, minmax(100px, auto)) / repeat(3, 1fr);
}

Ini menciptakan grid 3x3 di mana setiap baris paling sedikit 100px tinggi tapi dapat tumbuh, dan kolom membagi ruang tersedia secara sama rata.

CSS Grid - Nilai auto-flow

Nilai auto-flow menentukan bagaimana item yang ditempatkan otomatis dimasukkan ke grid. Itu seperti memutuskan apakah mengisi rak buku secara horizontal atau vertikal.

.container {
grid: auto-flow / 200px 1fr;
}

Ini menciptakan kolom 200px dan 1fr, dengan baris dibuat secara otomatis sesuai kebutuhan.

CSS Grid - Nilai auto-flow dense

Menambahkan dense ke auto-flow mengatakan ke grid untuk mengisi lubang awal jika item yang lebih kecil muncul kemudian. Itu seperti bermain Tetris secara efisien!

.container {
grid: auto-flow dense / 200px 1fr;
}

CSS Grid - Shorthand Kompleks

Anda dapat menggabungkan semua konsep ini menjadi deklarasi yang kuat:

.container {
grid: [auto-flow] 100px / repeat(3, [col-start] 1fr [col-end]);
}

Ini menciptakan grid dengan baris yang mengalir secara otomatis tinggi 100px, dan tiga kolom lebar yang sama dengan garis yang dinamai.

CSS Grid - Properti Terkait

Grid datang dengan keluarga properti. Berikut adalah beberapa properti kunci:

Properti Deskripsi
grid-template-rows Menentukan baris grid
grid-template-columns Menentukan kolom grid
grid-template-areas Menentukan area template grid
grid-auto-rows Mengatur ukuran untuk baris yang dibuat secara implisit
grid-auto-columns Mengatur ukuran untuk kolom yang dibuat secara implisit
grid-auto-flow Mengontrol bagaimana algoritma penempatan otomatis bekerja

Ingat, latihan membuat sempurna! Jangan takut untuk mencoba properti ini. Pernah saya memiliki murid yang menciptakan karya seni digital menggunakan Grid – kemungkinannya tak terbatas!

Dalam kesimpulan, CSS Grid adalah alat yang kuat yang dapat mengubah tata letak web Anda dari biasa menjadi menakjubkan. Mungkin terlihat overwhelming pada awalnya, tapi dengan latihan, Anda akan dapat membuat tata letak yang kompleks dengan mudah. Selamat coding, dan semoga grid Anda selalu berjejer sempurna!

Credits: Image by storyset