Tata Letak Masonri: Pendekatan CSS dan JS
Buat grid masonri bergaya Pinterest menggunakan column-count CSS dan strategi fallback JavaScript.
Tata Letak Masonri: Pendekatan CSS dan JS adalah pelajaran CSS Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CSS Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CSS Academy mencakup 4 pelajaran total.
Apa Itu Tata Letak Bata
Tata letak bata menempatkan item dalam kolom, dengan setiap item mengisi ruang vertikal yang tersedia berikutnya, seperti pada Pinterest. Item memiliki lebar kolom yang sama, tetapi tinggi yang berbeda-beda. Hasilnya adalah kisi yang padat dan dinamis secara visual, tanpa ruang putih yang terbuang di antara baris.
Tata Letak Bata Kisi CSS (Eksperimental)
Chrome dan Firefox, jika fitur di balik tanda pengaktifan diaktifkan, mendukung grid-template-rows: masonry. Item ditempatkan dalam kolom, tetapi ukuran baris mengikuti tinggi kontennya sehingga item dengan tinggi berbeda dapat tersusun rapat tanpa celah. Inilah solusi bawaan di masa depan.
<div class="grid">
<div>1</div><div>2</div><div>3</div><div>4</div>
</div>Pendekatan Kolom CSS
Kolom CSS membuat tata letak seperti bata: columns: 3; column-gap: 1rem. Item mengalir dari atas ke bawah di dalam setiap kolom secara otomatis. Keterbatasannya: item diurutkan berdasarkan kolom (bagian atas kolom 1, bagian atas kolom 2...) bukan berdasarkan baris, sehingga memengaruhi urutan pembacaan dan aksesibilitas.
Mencegah Pemisahan Kolom
Cegah item terbelah di antara kolom: break-inside: avoid pada setiap item. Tanpa pengaturan ini, kartu yang tinggi dapat terbelah di antara dua kolom sehingga kontennya terpotong menjadi dua. Selalu tambahkan pengaturan ini ketika menggunakan kolom CSS untuk konten berbentuk kartu.
Pustaka JavaScript untuk Tata Letak Bata
Masonry.js (oleh David DeSandro) mengatur ulang posisi item dengan posisi absolut dengan menghitung tinggi kolom dan menempatkan setiap item ke kolom yang paling pendek. Isotope memperluasnya dengan pengurutan dan penyaringan. Keduanya memerlukan JavaScript untuk menghitung dan menerapkan posisi.
Hibrida Kisi CSS + JS
Pendekatan ringan: tentukan kisi dengan kolom tetap dan baris 1px, lalu gunakan JS untuk menetapkan grid-row-end: span N pada setiap item berdasarkan tinggi konten / tinggi barisnya. Item mempertahankan perataan baris kisi sekaligus menghasilkan tinggi yang berbeda-beda.
Perhitungan Ulang dengan ResizeObserver
Posisi tata letak bata menjadi usang ketika ukuran jendela berubah atau gambar selesai dimuat. Gunakan ResizeObserver untuk mendeteksi perubahan ukuran dan memicu perhitungan ulang. Beri jeda pada perhitungan ulang agar tidak terjadi komputasi berlebihan selama peristiwa pengubahan ukuran yang cepat.
Pemuatan Gambar dan Stabilitas Tata Letak
Gambar dengan tinggi yang belum diketahui menyebabkan tata letak bata dihitung ulang setelah gambar selesai dimuat. Sediakan atribut lebar dan tinggi eksplisit pada semua gambar agar peramban menyediakan ruang sebelum pemuatan. Hal ini mencegah pergeseran posisi dan mengurangi jumlah proses perhitungan ulang.
Pengguliran Tak Terbatas dengan Tata Letak Bata
Menambahkan item ke tata letak bata mengharuskan penghitungan ulang hanya pada kolom yang terdampak (kolom untuk item baru), bukan seluruh kisi. Pustaka seperti Masonry.js mendukung animasi item yang ditambahkan dan tata letak bertahap tanpa menata ulang seluruh kisi pada setiap kumpulan baru.
Pertimbangan Aksesibilitas
Urutan visual tata letak bata berbeda dari urutan DOM pada tata letak yang posisinya diatur oleh JavaScript. Pastikan urutan tombol Tab mengikuti urutan DOM (urutan pembacaan logis), bukan posisi visual. Tambahkan tabindex dengan hati-hati atau andalkan alur DOM alami untuk navigasi menggunakan papan ketik.
Kompromi Tata Letak Bata CSS Saja
Kolom CSS: sederhana, tanpa JS, tetapi memiliki urutan pembacaan berdasarkan kolom (bukan baris) dan tidak mendukung penyaringan atau pengurutan. Tata letak bata pada Kisi: belum didukung untuk produksi. Tata letak bata dengan JS: fiturnya lengkap, tetapi menambah ukuran dan jeda tampilan karena posisi dihitung setelah konten dimuat.
Uji Pengetahuan
Properti CSS apa yang mencegah kartu terbelah di antara dua kolom CSS?
Ringkasan
Tata letak bata dapat dibuat dengan kolom CSS (sederhana, tetapi urutannya berdasarkan kolom), grid-template-rows: masonry yang masih eksperimental (menjanjikan untuk masa depan), atau pustaka JavaScript seperti Masonry.js (fiturnya lengkap dengan pengurutan dan penyaringan). Setiap pendekatan memiliki kompromi antara kesederhanaan, aksesibilitas, dan kemampuan.
Belajar CSS dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 40
- Pelajaran
- 159
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tata Letak Masonri: Pendekatan CSS dan JS” gratis?
Ya — teks lengkap “Tata Letak Masonri: Pendekatan CSS dan JS” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CSS Academy, upgrade ke CoddyKit PRO. Kursus CSS Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Tata Letak Masonri: Pendekatan CSS dan JS”?
Buat grid masonri bergaya Pinterest menggunakan column-count CSS dan strategi fallback JavaScript. Kamu berlatih CSS Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai CSS Academy?
Tidak diperlukan pengalaman sebelumnya. CSS Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Tata Letak Masonri: Pendekatan CSS dan JS” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran CSS Academy ini?
Ya. Setiap pelajaran CSS Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Tata Letak Footer dan Bilah Samping Tetap
- Tata Letak Cawan Suci dengan Grid
- Tata Letak Masonri: Pendekatan CSS dan JS
- Desain Intrinsik: Ukuran Berbasis Konten