Properti jurang dalam CSS adalah singkatan untuk row-gap
dan column-gap
, menentukan ukuran selokan, yang merupakan ruang antara baris dan lajur dalam susunan grid, fleksibel, dan multi-lajur.
/* Grid layout */ .container ( display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: 1fr 2fr 1fr; gap: 30px 20px; ) /* Flex layout */ .container ( display: flex; gap: 10%; ) /* Multi-column layout */ .container ( column-count: 5; gap: 20px; )


Gunakan slaid dalam demo di bawah ini untuk melihat gap
harta benda beraksi:
Sintaks
gap
menerima satu atau dua nilai:
- Nilai tunggal menetapkan kedua
row-gap
- duanya dancolumn-gap
dengan nilai yang sama. - Apabila dua nilai digunakan, yang pertama menetapkan
row-gap
dan yang kedua menetapkancolumn-gap
.
.container ( gap: 1rem; /* Is equivalent to: * row-gap: 1rem; * column-gap: 1rem */ gap: 10px 15%; /* Is equivalent to: * row-gap: 10px; * column-gap: 15%; */ )
Spesifikasi untuk CSS Grid Layout Module menentukan ruang antara trek grid menggunakan grid-gap
properti. gap
dimaksudkan untuk menggantinya sehingga jurang dapat didefinisikan dalam beberapa kaedah susun atur CSS, seperti flexbox, tetapi grid-gap
masih perlu digunakan dalam keadaan di mana penyemak imbas mungkin telah melaksanakan grid-gap
tetapi belum mulai menyokong gap
harta yang lebih baru .
Nilai
gap
menerima nilai berikut:
normal
: (Default) Penyemak imbas akan menentukan nilai terpakai 1em untuk susun atur berbilang lajur dan 0px untuk semua konteks susun atur lain (iaitu grid dan flex).: Mana-mana Panjang CSS sah dan bukan negatif, seperti
px
,em
,rem
dan%
, antara lain.: Ukuran jurang sebagai nilai peratusan bukan negatif berbanding dengan dimensi elemen. (Lihat di bawah untuk maklumat lanjut.)
initial
: Terpakai tetapan lalai hartanah, yang adalahnormal
.inherit
: Mengamalkan nilai jurang ibu bapa.unset
: Mengeluarkan arusgap
dari elemen.
Peratusan sifat jurang
Apabila ukuran bekas dalam dimensi jurang sudah pasti, gap
menyelesaikan peratusan berbanding ukuran kotak kandungan bekas dalam jenis susun atur apa pun.


Dengan kata lain, apabila penyemak imbas mengetahui ukuran bekas, ia dapat mengira nilai peratusan gap
. Sebagai contoh, apabila ketinggian bekas adalah 100 piksel dan gap
ditetapkan ke 10%, penyemak imbas mengetahui bahawa 10% dari 100 piksel adalah 10 piksel.
Tetapi apabila penyemak imbas tidak mengetahui ukurannya, akan tertanya-tanya, "10% dari apa?" Dalam kes ini, gap
berkelakuan berbeza berdasarkan jenis susun atur.
Dalam susun atur grid, peratusan diselesaikan terhadap sifar untuk menentukan sumbangan ukuran intrinsik, tetapi menyelesaikannya terhadap kotak isi elemen ketika meletakkan isi kotak, yang bermaksud akan meletakkan ruang di antara item tetapi ruang tidak mempengaruhi ukuran kontena.
Dalam demo ini, ketinggian kontena tidak pasti. Lihat apa yang berlaku apabila anda menambah gap
ukuran. Kemudian tetapkan gap
unit piksel dan cuba lagi:
Dalam susun atur yang lentur, peratusan dapat diselesaikan berbanding sifar dalam semua keadaan, yang bermaksud bahawa jurang tidak akan berlaku ketika ukuran bekas tidak diketahui oleh penyemak imbas:
Menggunakan fungsi calc () dengan jurang
Anda boleh menggunakan calc()
fungsi untuk menentukan ukuran gap
tetapi, pada saat penulisan ini, tidak ada sokongan untuknya pada Safari dan iOS.
.flex-layout ( display: flex; gap: calc(5vh + 5px) calc(5vw + 5px); )
.grid-layout ( display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(5vmin + 5px); )
Contoh
The gap
harta direka untuk digunakan dalam grid, flex dan berbilang lajur susun atur. Mari lihat beberapa contoh.
Susun atur grid
Dalam demo berikut, anda dapat melihat gap
digunakan untuk menentukan row-gap
dan column-gap
sifat pada bekas grid, yang menentukan selokan antara baris grid dan lajur grid, masing-masing:
Susun atur lentur
Menerapkan jurang ke paksi utama wadah flex menunjukkan jarak antara item lentur dalam satu baris susun atur lentur.
Ini column-gap
digunakan dalam arah berturut-turut:
Ini row-gap
digunakan dalam arah lajur:
Berlaku gap
pada paksi silang bekas fleksibel menunjukkan jarak antara garis lurus susun atur lentur.
Inilah row-gap
arah berturut-turut:
Inilah column-gap
arah lajur:
Susun atur berbilang lajur
column-gap
muncul dalam susun atur berbilang lajur untuk membuat jurang antara kotak lajur, tetapi perhatikan yang row-gap
tidak berpengaruh kerana kami hanya bekerja di lajur. gap
masih boleh digunakan dalam konteks ini, tetapi hanya column-gap
kehendak yang akan digunakan.
Seperti yang anda lihat dalam demo seterusnya, walaupun gap
harta itu mempunyai nilai 2rem, ia hanya memisahkan item secara mendatar dan bukan kedua-dua arah kerana kami sedang bekerja di lajur:
Semakin banyak yang anda tahu ...
Terdapat beberapa perkara yang perlu diperhatikan mengenai bekerja dengan gap
harta tanah.
Ini adalah kaedah yang baik untuk mengelakkan jarak yang tidak diingini
Adakah anda pernah menggunakan margin untuk membuat jarak antara elemen? Sekiranya kita tidak berhati-hati, kita boleh berakhir dengan jarak tambahan sebelum dan selepas kumpulan barang.
Menyelesaikan yang biasanya memerlukan penambahan margin negatif atau menggunakan pemilih semu untuk membuang margin dari item tertentu. Tetapi perkara yang senang digunakan gap
dalam kaedah susun atur yang lebih moden ialah anda hanya mempunyai ruang antara item. Kekurangan tambahan pada awal dan akhir tidak pernah menjadi masalah!
Tapi, hei, jika anda ingin mempunyai ruang di sekitar barang semasa menggunakan gap
, letakkan di padding
sekitar bekas seperti ini:
.container ( display: flex; gap: 1rem; padding: 1rem; )
Ukuran selokan tidak selalu sama dengan nilai jurang
The gap
harta bukan satu-satunya perkara yang boleh meletakkan ruang di antara barang-barang. Margin, paddings, justify-content
dan align-content
juga dapat meningkatkan ukuran selokan dan mempengaruhi nilai sebenarnya gap
.
Dalam contoh berikut, kami menetapkan 1em gap
tetapi, seperti yang anda lihat, terdapat lebih banyak ruang di antara item, yang disebabkan oleh penggunaan penjajaran yang diedarkan, seperti justify-content
dan align-content
:
Sokongan penyemak imbas
Pertanyaan ciri biasanya merupakan cara yang baik untuk memeriksa sama ada penyemak imbas menyokong harta tertentu, tetapi dalam kes ini, jika anda memeriksa gap
harta itu dalam kotak fleksibel, anda mungkin mendapat positif palsu kerana pertanyaan ciri tidak akan membezakan antara mod susun atur. Dengan kata lain, mungkin disokong dalam susun atur lentur yang menghasilkan hasil positif, tetapi sebenarnya tidak disokong jika digunakan dalam tata letak grid.
Susun atur grid
IE | Hujung | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Tidak | 16+ | 61+ | 66+ | 12+ | 53+ |
Safari iOS | Opera Mudah Alih | Penyemak Imbas Android | Chrome untuk Android | Firefox untuk Android |
---|---|---|---|---|
12+ | Tidak | 81+ | 84+ | 68+ |
Susun atur grid dengan nilai calc ()
IE | Hujung | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Tidak | 84+ | 79+ | 84+ | Tidak | 69+ |
Safari iOS | Opera Mudah Alih | Penyemak Imbas Android | Chrome untuk Android | Firefox untuk Android |
---|---|---|---|---|
Tidak | Tidak | 81+ | 84+ | 68+ |
Susun atur grid dengan nilai peratusan
IE | Hujung | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Tidak | 84+ | 79+ | 84+ | Tidak | 69+ |
Safari iOS | Opera Mudah Alih | Penyemak Imbas Android | Chrome untuk Android | Firefox untuk Android |
---|---|---|---|---|
Tidak | Tidak | 81+ | 84+ | 68+ |
Susun atur lentur
Spesifikasi untuk digunakan gap
dengan flexbox saat ini dalam status Draf Kerja.
Data sokongan penyemak imbas ini berasal dari Caniuse, yang mempunyai lebih terperinci. Nombor menunjukkan bahawa penyemak imbas menyokong ciri pada versi dan ke atas.
Desktop
Chrome | Firefox | IE | Hujung | Safari |
---|---|---|---|---|
84 | 63 | Tidak | 84 | TP |
Mudah Alih / Tablet
Android Chrome | Android Firefox | Android | Safari iOS |
---|---|---|---|
88 | 85 | Tidak | Tidak |
Susun atur berbilang lajur
IE | Hujung | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Tidak | 84+ | 79+ | 84+ | Tidak | 69+ |
Safari iOS | Opera Mudah Alih | Penyemak Imbas Android | Chrome untuk Android | Firefox untuk Android |
---|---|---|---|---|
Tidak | Tidak | 81+ | 84+ | 68+ |
Maklumat lanjut
- Modul Penjajaran Kotak CSS Tahap 3
- Chromium mendarat jurang Flexbox (Tiket # 761904)
- Status Ciri CSK WebKit
Berkaitan
- Susun atur Grid
- Susun atur Kotak Flex
- Susun atur Pelbagai Lajur