Rumah > Soal Jawab > teks badan
Saya menggunakan grid css untuk mengubah saiz lajur dan mengalihkannya ke baris baharu apabila ia tidak sesuai. Berikut ialah kod yang menerangkan segala-galanya:
.tiles-container { display: grid; grid-gap: 6rem; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 2fr)); } a { background: red; height: 100px; }
<div class="tiles-container"> <a></a> <a></a> <a></a> <a></a> </div>
grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 2fr));
Sekarang, apa yang saya mahu elakkan ialah mengalihkan hanya satu (satu) lajur ke baris baharu. Sebaliknya, ia runtuh lebih awal dan mengalihkan 2 lajur bersama-sama.
Untuk menerangkannya dengan lebih intuitif, ini boleh diterima:
█ █ █ █
Juga:
█ █ █
██
Juga:
██
██
Ini tidak boleh diterima:
█ █ █
█
Saya ingin mengelakkan pertanyaan media yang tidak perlu di sini. Ini kod saya: https://jsfiddle.net/tucado/0czokyxa/3/
P粉1564156962024-03-29 00:11:31
Jika sesiapa mengalami masalah yang sama, inilah penyelesaiannya: https://jsfiddle.net/tucado/0czokyxa/5/
dan CSS:
.tiles-container { /* first breakpoint*/ --w1:1200px; --n:6; /* second breakpoint*/ --w2:800px; --m:4; /* third breakpoint*/ --w3:400px; --p:2; display:grid; grid-template-columns: repeat(auto-fill, minmax(clamp(clamp(clamp( 100%/(var(--n) + 1) + 0.1%, (var(--w1) - 100%)*1000, 100%/(var(--m) + 1) + 0.1%), (var(--w2) - 100%)*1000, 100%/(var(--p) + 1) + 0.1%), (var(--w3) - 100%)*1000, 100%), 1fr)); gap:10px; border:1px solid; overflow:hidden; margin:5px; resize:horizontal; } .tiles-container > a { height:100px; background:red; }
Terima kasih @Temani-Afif