Saya mempunyai grid yang melukis petak dalam sel. Ia mempunyai bilangan baris dan lajur, kemudian melukis sel grid dan menyemak sama ada perlu ada segi empat sama dalam setiap sel (mengikut tatasusunan) dan melukis segi empat sama jika perlu. Hasil akhir HTML kelihatan seperti ini: (dengan andaian saya mempunyai 1 baris dan 3 lajur, hanya 2 sel harus mempunyai segi empat sama)
.row { display: flex; flex-wrap: wrap; flex: 10000 1 0%; } .column { display: flex; flex-wrap: wrap; max-width: 100px; min-width: 10px; padding: 4px; border: 1px solid grey; } .square { background-color: red; width: 100%; aspect-ratio: 1/1; border-radius: 5px; }
<div class="row"> <div class="column"> <div class="square"></div> </div> <div class="column"> <div class="square"></div> </div> <div class="column"></div> </div>
Barisan mengambil keseluruhan lebar skrin dan saiz lajur hendaklah sama antara semua lajur dan berubah berdasarkan bilangan lajur pada skrin (contohnya jika saya mempunyai 5 lajur, semuanya harus disertakan dengan lebar 100 piksel tetapi jika saya mempunyai 1000 lajur, semuanya hendaklah 10 piksel lebar).
Masalah saya ialah padding dan jejari sempadan kelihatan pelik selepas titik putus tertentu dalam saiz lajur dan saya mahu menukar nilainya apabila saya mencapai titik putus itu. Saya tidak boleh menggunakan pertanyaan @container kerana ia masih tidak disokong sepenuhnya.
Jika ia membantu, saya menggunakan vue 2. Tetapi saya fikir penyelesaian CSS akan menjadi lebih baik dalam kes ini.
Cuba selesaikan masalah yang diterangkan:
Saya membuat demo kecil untuk membantu saya meneroka dengan lebih baik perkara yang diperlukan untuk mencapai senario ini.
Dapatkan sempadan: runtuh bersamaan pada item flexbox
.row
元素仍然是一个 Flexbox 容器,但它的 Flex 项目没有设置border
,而是使用outline
Tetapan untuk penggayaan.Lakaran tidak mengambil ruang dan akan "runtuh" apabila berlanggar dengan garis besar yang dihasilkan oleh elemen lain.
Jadi, untuk memastikan reka letak tidak dipengaruhi oleh gaya pelik, apabila cuba memaparkan sempadan item Flex, demo ini hanya bergantung pada 2 aspek utama untuk menjadikan sempadan tersebut:
间隙
轮廓
untuk menutup jurang yang tertinggal di antara ElemenGunakan ::selepas untuk menambah kandungan pada elemen
Selain itu, titik merah digunakan dengan
position:absolute
的::after
unsur pseudo, sekali lagi memastikan tiada apa-apa yang menjejaskan reka letak grid:Papan Pemuka - Teroka Pilihan
Dari situ, saya menambah "papan pemuka" dengan
position:fixed
yang kekal di bahagian atas halaman dan membolehkan anda mengawal:display: none;
不会更改网格布局它完全取决于通过自定义变量--col-width
设置的.column
saiz elemenKesimpulan setakat ini:
Walaupun kami berusaha untuk meminimumkan gangguan dan mengambil semua langkah yang diperlukan untuk menyediakan susun atur grid dengan betul hanya berdasarkan saiz tetap sel, masih terdapat beberapa masalah dengan pemaparan dan kadangkala saiz sempadan garisan A tertentu corak ketidakpadanan biasa berlaku. Saya harus mengatakan bahawa saya hanya menghadapi masalah dengan paparan komputer riba, bukan monitor desktop , jadi itu satu lagi faktor.
Saya mencuba parameter yang berbeza dan mengecilkan nombor dalam demo, dengan mengambil kira jurang juga. Susun atur yang baik dan selamat boleh meminimumkan potensi masalah (contohnya, ia juga boleh meningkatkan saiz sempadan).
Saya tidak dapat pergi lebih jauh daripada ini menggunakan reka letak Flex.