Chromium mendapatkan celah Flexbox

Properti gap CSS tersedia untuk mesin tata letak Multi-Kolom dan CSS Flexbox Chromium.

Jeda CSS

gap bersifat relatif terhadap alur, yang berarti berubah secara dinamis berdasarkan arah alur konten. Misalnya, gap akan otomatis menyesuaikan nilai writing-mode atau direction yang berbeda yang Anda tetapkan untuk pengguna internasional. Hal ini secara signifikan meringankan beban tantangan jarak bagi komponen dan penulis CSS. Lebih sedikit penskalaan kode lebih lanjut.

Gap yang menunjukkan dukungan pelokalan, karena menangani perubahan pada arah dan mode penulisan: Codepen | Tweet

Kompatibilitas browser

Dukungan Browser

  • Chrome: 57.
  • Edge: 16.
  • Firefox: 52.
  • Safari: 10.1.

Sumber

Penggunaan

gap menerima panjang atau persentase CSS sebagai nilai.

.gap-example {
  display: grid;
  gap: 10px;
  gap: 2ch;
  gap: 5%;
  gap: 1em;
  gap: 3vmax;
}


Gap dapat diteruskan 1 panjang, yang akan digunakan untuk baris dan kolom.

Singkat
.grid {
  display: grid;
  gap: 10px;
}
Menetapkan baris dan kolom bersama-sama sekaligus
Diperluas
.grid {
  display: grid;
  row-gap: 10px;
  column-gap: 10px;
}


Gap dapat meneruskan 2 panjang, yang akan digunakan untuk baris dan kolom.

Singkatan
.grid {
  display: grid;
  gap: 10px 5%;
}
Menetapkan baris dan kolom secara terpisah sekaligus
Diperluas
.grid {
  display: grid;
  row-gap: 10px;
  column-gap: 5%;
}

Flexbox gap

Sebelum gap berada di Flexbox, strategi melibatkan margin negatif, pemilih kompleks, pemilih pseudo-class jenis :last atau :first, atau cara lain untuk mengelola ruang dari kumpulan turunan yang disusun dan digabungkan secara dinamis.

Percobaan Sebelumnya

Berikut adalah pola yang telah digunakan orang untuk mendapatkan spasi seperti celah.

pemilih pseudo-class
.layout > :not(:last-child) {
  margin-bottom: 10px;
  margin-right: 10px;
}
burung hantu yang dilobotomi
.layout > * + * {
  margin-bottom: 10px;
  margin-right: 10px;
}
Source

Namun, hal di atas bukanlah pengganti penuh untuk gap, dan sering kali memerlukan penyesuaian @media atau :lang() untuk memperhitungkan skenario penggabungan, mode penulisan, atau arah. Menambahkan satu atau dua kueri media tampaknya tidak terlalu buruk, tetapi kueri tersebut dapat bertambah dan menyebabkan logika tata letak yang rumit.

Yang benar-benar diinginkan penulis di atas adalah tidak ada item turunan yang bersentuhan.

The Antidote: gap

.layout {
  display: flex;
  gap: 10px;
}

Dalam 2 contoh pertama (tanpa Flexbox gap), turunan ditargetkan dan diberi spasi dari elemen lain. Dalam contoh celah antidote, penampung memiliki spasi. Setiap turunan dapat meringankan bebannya, sekaligus memusatkan kepemilikan spasi. Menyederhanakan konsistensi. Urutkan ulang, ubah area pandang, hapus elemen, tambahkan elemen baru, dll. serta spasi tetap konsisten. Tidak ada pemilih baru, tidak ada kueri media baru, hanya ruang.

Info terbaru Chromium DevTools

Dengan update ini, perubahan pada Chromium DevTools akan terjadi. Perhatikan cara panel Styles menangani grid-gap dan gap sekarang 👍

Kantor dengan dua orang bekerja di satu meja.
Devtools menampilkan grid-gap dan gap, dengan gap yang ditampilkan digunakan di bawah grid-gap agar kaskade dapat menggunakan sintaksis terbaru.

DevTools mendukung grid-gap dan gap, karena gap pada dasarnya adalah alias untuk sintaksis sebelumnya.

Potensi tata letak baru

Dengan Flexbox gap, kita mendapatkan lebih dari sekadar kemudahan. Kami membuka tata letak intrinsik yang canggih dan memiliki spasi yang sempurna. Dalam video dan contoh kode berikut di bawah, Grid tidak dapat mencapai tata letak yang dapat dilakukan Flexbox. Petak harus memiliki baris dan kolom yang sama, meskipun ditetapkan secara intrinsik.

Tweet

Selain itu, perhatikan betapa dinamis spasi antar-turunan saat digabungkan secara intrinsik seperti itu. Kueri media tidak dapat mendeteksi penggabungan seperti itu untuk melakukan penyesuaian cerdas. Flexbox gap dapat, dan akan, melakukannya untuk Anda di semua internasionalisasi.

gap multi-kolom

Selain Flexbox yang mendukung sintaksis gap, tata letak multi-kolom juga mendukung sintaksis gap yang lebih pendek.

article {
  column-width: 40ch;
  column-gap: 5ch;
  gap: 5ch;
}

Keren banget.