dan grid-template-rows
grid-template-columns
Tetapi sehingga baru -baru ini, ketiga -tiga pelayar utama menyokong sepenuhnya animasi sifat mesh ini. Mari lihat beberapa contoh untuk memberi inspirasi kepada kreativiti anda!
katalog
grid dua lajur mudah. Sebelum ini, anda mungkin tidak akan membinanya dengan grid CSS kerana animasi dan peralihan tidak disokong, tetapi bagaimana jika anda mahu lajur kiri (mungkin navigasi sidebar) untuk berkembang pada hover? Sekarang, ini mungkin.
Saya tahu apa yang anda fikirkan: "Atribut CSS Animasi? Sekeping kek, saya telah melakukannya selama bertahun -tahun!" Walau bagaimanapun, saya menghadapi halangan yang menarik apabila mencuba kes penggunaan tertentu.
jadi kami mahu menukar mesh itu sendiri (terutamanya
ditetapkan pada kelas dalam contoh). Tetapi lajur kiri (.grid
. Walaupun JavaScript dapat menyelesaikan masalah ini dengan mudah - terima kasih, tidak perlu - kita boleh melaksanakannya dengan hanya CSS. grid-template-columns
.left
mari kita jelaskan keseluruhan proses langkah demi langkah, bermula dengan HTML. Ia sebenarnya sangat standard ... grid dengan dua lajur. :hover
Decorative CSS diketepikan, anda perlu menetapkan
pada bekas induk (<div class="grid"> <div class="left"></div> <div class="right"></div> </div>
.grid
display: grid
Seterusnya, kita boleh menggunakan atribut
.grid { display: grid; }
grid-template-columns
auto
kita tahu kita mahu menghidupkannya, jadi mari kita tambahkan kesan peralihan sambil menambah animasi supaya perubahan antara negeri akan lancar dan jelas.
.grid { display: grid; grid-template-columns: 48px auto; }
sudah selesai! Selebihnya ialah keadaan hover aplikasi. Khususnya, kami akan menimpa harta
.grid { display: grid; grid-template-columns: 48px auto; transition: 300ms; /* 根据需要更改 */ }
.grid
Ini sahaja tidak begitu menyeronokkan, walaupun grid CSS kini menyokong animasi dan peralihan. Apa yang lebih menarik ialah kita boleh menggunakan kelas pseudo yang agak baru untuk menggayakan bekas induk (grid-template-columns
) apabila elemen kanak-kanak (
<div class="grid"> <div class="left"></div> <div class="right"></div> </div>
Dalam bahasa Inggeris yang mudah, ini bermakna: "Jika bekas .grid
mengandungi elemen yang dinamakan .left
dan elemennya melayang, kemudian lakukan beberapa operasi pada bekas .grid
. Kami akhirnya boleh memilih elemen induk berdasarkan unsur -unsur kanak -kanak yang terkandung - tiada JavaScript diperlukan! :has()
hingga 30% apabila melayang. Lajur .left
akan terus menduduki semua ruang yang tinggal: .right
.grid { display: grid; }
.grid { display: grid; grid-template-columns: 48px auto; }
Ini adalah satu lagi contoh Olivia ng -konsep yang serupa, tetapi mengandungi kandungan (klik pada ikon navigasi):
Contoh 2: Kembangkan panel
Perlu diingat bahawa fungsi
kadang -kadang menghasilkan peralihan yang salah, itulah sebabnya saya menetapkan lebar setiap lajur secara berasingan (iaitu repeat()
). grid-template-columns: 1fr 1fr 1fr
) dan bahawa grid CSS mesti mengakui kewujudannya apabila ia menetapkan lebarnya kepada 0FR. display: none
(ya, unit mesti diisytiharkan walaupun nilai itu 0!) Akan ditukar dengan betul ke grid-template-columns: 1fr 1fr 0fr
, tetapi grid-template-columns: 1fr 1fr 1fr
tidak akan. Di belakang, ini sebenarnya benar -benar munasabah memandangkan pemahaman kita tentang bagaimana peralihan berfungsi. grid-template-columns: 1fr 1fr
lebih banyak contoh
"Mondrian animasi" ini adalah bukti awal konsep untuk grid CSS animasi yang dihasilkan oleh Chrome Devrel.
dan grid-row
gunakan kata kunci grid-column
untuk membuat susun atur yang anda lihat sebelum anda, dan kemudian gunakan animasi CSS untuk menghidupkan span
dan grid-template-row
. Ia tidak begitu rumit kerana ia kelihatan! grid-template-column
Akhirnya mengkaji nostalgia (saya berumur di sini), Andrew Harvard membuat grid CSS animasi yang tidak seperti grid. Sama - konsep yang sama - anda tidak dapat melihat item grid lain. Tetapi jangan risau, mereka ada di sana.
Atas ialah kandungan terperinci Animasi CSS Grid (Cara Contoh). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!