Asas CSS Grid
15 minitPemulaHTML · CSS · JS
Dalam pelajaran ini
- ▸Cipta grid dengan
display: griddangrid-template-columns - ▸Bahagikan ruang dengan adil menggunakan unit
frdanrepeat() - ▸Jarakkan baris dan lajur dengan
gap - ▸Jadikan sesuatu item merentas beberapa lajur dengan
grid-column
Idea utama
Flexbox menyusun elemen dalam satu arah. Grid menyusun elemen dalam baris dan lajur serentak — sesuai untuk galeri, senarai kad dan susun atur halaman.
Bayangkan grid seperti garisan dalam buku latihan. Anda lukis lajur pada induk, dan anak-anaknya masuk ke dalam petak satu demi satu, kiri ke kanan, kemudian ke baris seterusnya.
.cards {
display: grid;
grid-template-columns: 200px 200px 200px; /* three columns */
gap: 16px; /* space between cells */
}Anda tak pernah sebut berapa baris. Grid cipta seberapa banyak yang perlu: enam kad dalam tiga lajur menjadi dua baris secara automatik.
Unit fr: bahagian yang adil
Lajur piksel tetap tak muat semua skrin. Unit fr bermaksud pecahan daripada ruang kosong. 1fr 1fr 1fr memberi tiga lajur sama lebar yang memanjang mengikut halaman. 2fr 1fr menjadikan lajur pertama dua kali lebih lebar daripada yang kedua.
Ulang-ulang
grid-template-columns: 1fr 1fr 1fr 1fr;Sama, dengan repeat()
grid-template-columns: repeat(4, 1fr);repeat(bilangan, saiz) cuma jalan pintas. Kedua-dua baris membina empat lajur sama lebar.
Meletakkan item
Secara default, setiap item mengambil satu petak. Untuk membesarkan sesuatu item, beritahu berapa lajur yang perlu ia rentasi (span):
.featured {
grid-column: span 2; /* take up two columns */
}
.banner {
grid-column: 1 / -1; /* from the first line to the last: full width */
}Garisan, bukan petak
Grid menomborkan garisan di antara lajur, bermula dari 1. Tiga lajur ada empat garisan, jadi 1 / 4 dan 1 / -1 kedua-duanya bermaksud "dari paling kiri ke paling kanan". -1 sentiasa bermaksud garisan terakhir.
Grid atau flexbox?
Guna flexbox untuk satu baris atau satu lajur elemen (bar navigasi, deretan butang). Guna grid bila anda mahu baris dan lajur sejajar (galeri, dashboard, seluruh halaman). Laman web sebenar guna kedua-duanya, selalunya bersarang.
Kad-kad kuih bertindan dalam satu lajur panjang. Jadikan .cards sebagai grid dengan tiga lajur sama lebar yang memanjang mengikut halaman — guna unit fr (dengan atau tanpa repeat()).
Semakan
- .cards ialah grid container
- Grid ada tiga lajur sama lebar
- Kad duduk bersebelahan dan turun ke baris baharu
Uji kefahaman
Apa yang anda pelajari
- ✓
display: grid+grid-template-columnspada induk mencipta lajur; baris dibuat secara automatik. - ✓
frmembahagikan ruang kosong;repeat(3, 1fr)memberi tiga lajur sama lebar. - ✓
gapmenjarakkan baris dan lajur tanpa sebarang margin. - ✓
grid-column: span 2menjadikan item meliputi dua lajur;1 / -1menjadikannya lebar penuh.
Output konsol daripada kod anda akan dipaparkan di sini.