Rumah > Soal Jawab > teks badan
P粉5295811992023-09-01 15:18:03
Penyelesaiannya sangat mudah. Saya meletakkan grid saya di dalam grid lain. Kemudian saya hanya menggunakan fr sebagai cara untuk mengubah saiz baris pada div di mana grid utama berada. Ini menyebabkan kemungkinan menukar baris grid daripada 0fr kepada 1fr. Itu sahaja.
.toggle { width: 100%; } .grid { display: grid; width: 20%; border: solid black 2px; } .div1 { grid-column: 1; grid-row: 1; } .div2 { grid-column: 2; grid-row: 1; } .wrapper { grid-column: 1 / 3; grid-row: 2; display: grid; grid-template-rows: 0fr; overflow: hidden; transition: grid-template-rows 200ms; } .div3 { grid-column: 1; grid-row: 1; min-height: 0; } .div4 { grid-column: 2; grid-row: 1; min-height: 0; } .toggle:checked ~ .grid > .wrapper { grid-template-rows: 1fr; }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="style.css"> <title>Website</title> </head> <body> <input class="toggle" type="checkbox"> <div class="grid"> <div class="div1">Hello</div> <div class="div2">Hello2</div> <div class="wrapper"> <div class="div3">Hello3</div> <div class="div4">Hello4</div> </div> </div> </body> </html>
Selain itu, jika anda mempunyai baris yang berbeza dengan saiz yang berbeza dalam grid anda. Contohnya, satu pada 0.05fr dan satu pada 1fr, animasi akan menjadi "laggy". Perkara yang boleh anda lakukan ialah meletakkan grid pembalut di dalam grid pembalut lain. Kemudian, daripada menggunakan baris sebenar untuk menghidupkan grid itu, anda menggunakan kaedah yang sama untuk menghidupkan kanak-kanak grid pertama atau induk grid sebenar.
Ini adalah penyelesaian yang pelik, tetapi ia adalah satu cara untuk menyelesaikan masalah tanpa perlu membuat semula terlalu banyak.