Item grid yang mengehadkan pengembangan kandungan
P粉199248808
P粉199248808 2023-08-20 19:49:37
0
2
483
<p><strong>TL:</strong> Adakah terdapat sifat yang serupa dengan <code>table-layout: fixed</code> </p> <hr /> <p>Saya cuba mencipta kalendar paparan tahun dengan grid 4x3 yang besar untuk bulan-bulan dan bersarang di dalamnya ialah grid 7x6 untuk tarikh. </p> <p>Kalendar harus memenuhi seluruh halaman, jadi lebar dan tinggi bekas grid tahun ditetapkan kepada 100%. </p> <pre class="brush:php;toolbar:false;">.year-grid { lebar: 100%; ketinggian: 100%; paparan: grid; grid-template: ulang(3, 1fr) / ulang(4, 1fr); } .bulan-grid { paparan: grid; grid-template: ulang(6, 1fr) / ulang(7, 1fr); }</pre> <p>Berikut ialah contoh yang berfungsi: https://codepen.io/loilo/full/ryXLpO/</p> <p>Untuk memudahkan, setiap bulan dalam contoh ini mempunyai 31 hari dan bermula pada hari Isnin. </p> <p>Saya juga memilih saiz fon yang sangat kecil untuk menunjukkan masalah: </p> <p>Item grid (iaitu sel tarikh) sangat padat kerana terdapat ratusan sel tarikh pada halaman. Dan apabila label tarikh menjadi terlalu besar (jangan ragu untuk menggunakan butang di penjuru kiri sebelah atas untuk melaraskan saiz fon dalam contoh), grid berkembang dan melebihi had halaman. </p> <p>Adakah terdapat cara untuk mencegah tingkah laku ini? </p> <p>Saya pada asalnya menetapkan lebar dan ketinggian grid tahun kepada 100%, jadi itu mungkin tempat untuk bermula, tetapi saya tidak dapat mencari sebarang sifat CSS berkaitan grid untuk memenuhi keperluan ini. </p> <p><em>Penafian: </em>Saya tahu ada cara mudah untuk menggayakan kalendar ini tanpa menggunakan reka letak Grid CSS. Walau bagaimanapun, soalan ini lebih kepada pengetahuan umum tentang topik dan bukannya menangani contoh khusus. </p>
P粉199248808
P粉199248808

membalas semua(2)
P粉304704653

Jawapan sebelumnya sangat bagus, tetapi saya juga ingin menyatakan bahawa terdapat cara yang setara untuk membetulkan reka letak untuk grid, anda hanya perlu menggunakan huruf besar pada trek anda sebagai minmax(0, 1fr)而不是1fr.

P粉818088880

Secara lalai, saiz item grid tidak boleh lebih kecil daripada saiz kandungannya.

Saiz awal item grid ialah min-width: automin-height: auto.

Anda boleh mengatasi gelagat ini dengan menetapkan item grid kepada sebarang nilai selain daripada min-width: 0min-height: 0overflow(除visible).

Dari spec:

Berikut ialah penjelasan yang lebih terperinci meliputi item fleksibel, tetapi juga digunakan pada item grid:

Artikel ini juga merangkumi masalah berpotensi dengan bekas bersarang dan diketahui menyatakan perbezaan antara penyemak imbas utama.


Untuk membetulkan reka letak anda, buat pelarasan berikut pada kod anda:

.month-grid {
  display: grid;
  grid-template: repeat(6, 1fr) / repeat(7, 1fr);
  background: #fff;
  grid-gap: 2px;
  min-height: 0;  /* 新增 */
  min-width: 0;   /* 新增;Firefox需要 */
}

.day-item {
  padding: 10px;
  background: #DFE7E7;
  overflow: hidden;  /* 新增 */
  min-width: 0;      /* 新增;Firefox需要 */
}

jsFiddle Demo


1frminmax(0, 1fr)

Penyelesaian di atas beroperasi pada tahap item grid. Untuk penyelesaian peringkat kontena, lihat artikel berikut:

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!