Bagaimana untuk membuat tetingkap modal animasi CSS sahaja?
Gunakan kotak semak tersembunyi dan: diperiksa kelas pseudo untuk mengawal status kotak modal; 2. Klik untuk membuka dan menutup melalui persatuan label; 3. Gunakan peralihan CSS atau @keyframes untuk mencapai animasi zoom yang pudar; 4. Tetapkan penunjuk-events untuk memastikan bahawa mengklik topeng boleh ditutup; 5. Kunci ESC tidak boleh ditutup dalam CSS tulen. Kaedah ini tidak memerlukan JavaScript, ringan dan serasi dengan pelayar moden, dan sesuai untuk projek mudah atau tujuan pembelajaran.
Mewujudkan tetingkap modal animasi CSS hanya boleh dilakukan dengan hanya menggunakan HTML dan CSS-NO JavaScript diperlukan. Caranya terletak pada menggunakan :target
atau kotak semak dengan :checked
untuk mengawal penglihatan, digabungkan dengan peralihan CSS atau animasi untuk kesan lancar.

Inilah cara membina satu langkah demi langkah:
✅ 1. Gunakan hack kotak semak atau :target
untuk togol kawalan
Oleh kerana kita tidak boleh menggunakan JavaScript, kita memerlukan cara untuk "ingat" keadaan modal. Dua kaedah biasa:

-
:target
- Menggunakan Pengenal Serpihan URL (misalnya,#modal
) - Hack kotak semak - menyembunyikan kotak semak dan gaya
:checked
Kami akan menggunakan kaedah kotak semak kerana ia membolehkan tingkah laku klik klik yang lebih lancar dan kawalan yang lebih baik.
Struktur HTML:
<!-kotak semak tersembunyi untuk mengawal keadaan modal-> <input type = "checkbox" id = "modal-toggle" class = "modal-toggle"> <label untuk = "modal-toggle" class = "modal-open-btn"> buka modal </label> <!-modal-> <div class = "modal"> <label untuk = "modal-toggle" class = "modal-overlay"> </label> <div class = "modal-content"> <label untuk = "modal-toggle" class = "modal-close"> & times; </label> <h2> Tajuk modal </h2> <p> Ini adalah kandungan modal animasi anda. </P> </div> </div>
Kotak semak bertindak sebagai togol. Mengklik label (
modal-open-btn
) atau elemen tutup togol kotak semak, yang kami gaya kondisi.
✅ 2. Gaya modal dengan animasi CSS
Sekarang gunakan gaya untuk menjadikannya animasi dan menarik secara visual.
CSS Teras:
/ * Menyembunyikan kotak semak */ .modal-toggle { Paparan: Tiada; } / * Asas modal: tersembunyi secara lalai */ .modal { Kelegapan: 0; Keterlihatan: Tersembunyi; Kedudukan: Tetap; Atas: 0; Kiri: 0; Lebar: 100%; Ketinggian: 100%; Pointer-events: Tiada; Peralihan: Kelegapan 0.3s mudah; } / * Overlay modal (latar belakang redup) */ .modal-overlay { Kedudukan: Mutlak; Atas: 0; Kiri: 0; Lebar: 100%; Ketinggian: 100%; latar belakang warna: RGBA (0, 0, 0, 0.5); } / * Kotak kandungan modal */ .modal-content { Kedudukan: Mutlak; Atas: 50%; Kiri: 50%; Transform: Terjemahan (-50%, -50%) skala (0.8); lebar: 90%; Max-Width: 500px; Latar Belakang: Putih; Padding: 30px; Radius sempadan: 10px; Box-shadow: 0 4px 20px RGBA (0,0,0,0.2); Peralihan: Transformasi 0.3s mudah; } / * Butang tutup */ .modal-close { Kedudukan: Mutlak; Atas: 10px; Kanan: 15px; saiz font: 28px; kursor: penunjuk; Warna: #AAA; } .Modal-Close: Hover { Warna: #000; } / * Tunjukkan modal apabila kotak semak diperiksa */ .modal-toggle: diperiksa .modal { Kelegapan: 1; Keterlihatan: kelihatan; Pointer-events: Auto; } .modal-toggle: diperiksa .modal .modal-content { Transform: Terjemahan (-50%, -50%) skala (1); }
The
pointer-events: none
pada modal danpointer-events: auto
When Active Secure Clicks pada Overlay menutup modal (melalui label).
✅ 3. Tambahkan Animasi Masuk dan Keluar
Mahukan lebih banyak bakat? Ganti transition
dengan animasi @keyframes
penuh.
Contoh: animasi pudar & skala
@KeyFrames Modal-in { 0% { Kelegapan: 0; Transform: Terjemahan (-50%, -50%) skala (0.7); } 100% { Kelegapan: 1; Transform: Terjemahan (-50%, -50%) skala (1); } } @KeyFrames modal-out { 0% { Kelegapan: 1; Transform: Terjemahan (-50%, -50%) skala (1); } 100% { Kelegapan: 0; Transform: Terjemahan (-50%, -50%) skala (0.8); } } / * Sapukan animasi hanya semasa membuka */ .modal-toggle: diperiksa .modal .modal-content { Animasi: Modal-in 0.3s ke hadapan; } / * Pilihan: Animate out - rumit tanpa js, tetapi berfungsi dengan dekat jika anda membalikkan */ .modal-content { Animasi: Tiada; }
NOTA: Oleh kerana CSS tidak dapat membalikkan animasi dengan mudah pada tidak jelas, menggunakan
transition
sering lebih lancar daripada cuba menghidupkan penutupan.
✅ 4. Pilihan: Tutup Onlay atau ESC (separa)
- Overlay klik : sudah dikendalikan melalui
<label for="modal-toggle" class="modal-overlay"></label>
- Kunci ESC : Tidak boleh dikendalikan dalam CSS tulen. Anda memerlukan JS untuk sokongan papan kekunci.
✅ Ringkasan: Mata Utama
- Gunakan kotak semak tersembunyi dan
:checked
untuk mensimulasikan keadaan. - Gunakan elemen
label
untuk mencetuskan terbuka/tutup. - Animate dengan
transition
atau@keyframes
. - Gunakan
pointer-events
untuk mengawal tingkah laku klik pada latar belakang. - Tiada sokongan papan kekunci (ESC) tanpa JavaScript.
Kaedah ini ringan, boleh diakses untuk kegunaan asas, dan berfungsi di seluruh pelayar moden. Ia sesuai untuk projek mudah atau belajar logik CSS.
Pada dasarnya hanya menghubungkan kotak semak ke label dan menghidupkan penampilan. Bukan sihir -hanya CSS pintar.
Atas ialah kandungan terperinci Bagaimana untuk membuat tetingkap modal animasi CSS sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Filter latar belakang digunakan untuk menggunakan kesan visual kepada kandungan di belakang unsur-unsur. 1. Gunakan penapis latar belakang: blur (10px) dan sintaks lain untuk mencapai kesan kaca beku; 2. Menyokong pelbagai fungsi penapis seperti kabur, kecerahan, kontras, dan lain -lain dan boleh ditumpangkan; 3. Ia sering digunakan dalam reka bentuk kad kaca, dan perlu memastikan bahawa unsur -unsur bertindih dengan latar belakang; 4. Pelayar moden mempunyai sokongan yang baik, dan @supports boleh digunakan untuk menyediakan penyelesaian penurunan; 5. Elakkan nilai kabur yang berlebihan dan kerap meredakan untuk mengoptimumkan prestasi. Atribut ini hanya berkuatkuasa apabila terdapat kandungan di belakang unsur -unsur.

Unit VW dan VH mencapai reka bentuk responsif dengan mengaitkan saiz elemen dengan lebar dan ketinggian viewport; 1VW adalah sama dengan 1% lebar viewport, dan 1VH adalah sama dengan 1% ketinggian viewport; biasanya digunakan di kawasan skrin penuh, fon responsif dan jarak elastik; 1. Gunakan 100VH atau lebih baik 100DVH di kawasan skrin penuh untuk mengelakkan pengaruh bar alamat pelayar mudah alih; 2. 3. Jarak elastik seperti lebar: 80VW, margin: 5vhauto, padding: 2VH3VW, boleh membuat susun atur yang boleh disesuaikan; Perhatikan keserasian peranti mudah alih, kebolehaksesan dan konflik kandungan lebar tetap, dan disyorkan untuk memberi keutamaan untuk menggunakan DVH terlebih dahulu;

Theaspect-ratiocsspropertydefinesthewidth-to-heightratioofanelement, memastikan konsistenproportionsinresponedesedesigns.1.InisappliedDirectyToelementsLikeImages, Video, Orcontainersusingsyxsuchaspasect-ratio: 16/9.2.

The: emptypseudo-classSelectSelementSwithnoChildrenorcontent, includingspacesorcomments, SoonlyTrulyEmptyElementsLikeMatchit; 1.itcanHideEptyContainersByusing: kosong {paparan: none;} TOCleanUplayouts;

Define@keyframesbouncewith0%,100%attranslateY(0)and50%attranslateY(-20px)tocreateabasicbounce.2.Applytheanimationtoanelementusinganimation:bounce0.6sease-in-outinfiniteforsmooth,continuousmotion.3.Forrealism,use@keyframesrealistic-bouncewithscale(1.1

Gunakan div dengan sempadan untuk membuat garis menegak dengan cepat, dan tentukan gaya dan ketinggian dengan menetapkan sempadan dan ketinggian; 2. Penggunaan :: Sebelum atau :: Selepas elemen pseudo untuk menambah garis menegak tanpa tag HTML tambahan, sesuai untuk pemisahan hiasan; 3. Dalam susun atur Flexbox, dengan menetapkan warna lebar dan latar belakang kelas pembahagi, pembahagi menegak adaptif antara bekas elastik dapat dicapai; 4. Dalam cssgrid, masukkan garis menegak sebagai lajur bebas (seperti lajur autowidth) ke dalam susun atur grid, yang sesuai untuk reka bentuk responsif; Kaedah yang paling sesuai harus dipilih mengikut susun atur khusus untuk memastikan strukturnya mudah dan mudah dijaga.

CSS Pseudo-Class adalah kata kunci yang digunakan untuk menentukan keadaan khas elemen. Ia boleh menggunakan gaya secara dinamik berdasarkan interaksi pengguna atau lokasi dokumen; 1.:Hover dicetuskan apabila tetikus dilegakan, seperti butang: Hover mengubah warna butang; 2.:Focus berkuatkuasa apabila elemen mendapat tumpuan, meningkatkan kebolehcapaian bentuk; 3.:nth-Child () memilih unsur-unsur dengan kedudukan, menyokong ganjil, bahkan atau formula seperti 2n 1; 4.: Pertama-Anak dan: Kanak-kanak Last Pilih Elemen Anak Pertama dan Terakhir masing-masing; 5.:Not () tidak termasuk unsur -unsur yang sepadan dengan keadaan yang ditentukan; 6.:Visited dan: gaya set pautan berdasarkan status akses pautan, tetapi: dikunjungi adalah dihadkan oleh privasi.

Gunakan kotak semak tersembunyi dan CSS: Pseudo-kelas yang diperiksa digabungkan dengan pemilih saudara bersebelahan () untuk mengawal paparan kandungan; 2. Struktur HTML mengandungi input, label dan kandungan div untuk setiap item yang runtuh; 3. Ekspansi lancar/runtuh animasi dengan menetapkan peralihan ketinggian max; 4. Tambah ikon status terbuka/tutup dengan elemen pseudo; 5. Gunakan jenis radio untuk melaksanakan mod tunggal terbuka, manakala kotak semak membolehkan pelbagai bukaan. Ini adalah pelaksanaan menu dilipat interaktif yang tidak memerlukan JavaScript dan serasi dengan pelayar moden.
