Pola Menu Tarik Turun dan Popover
Buat menu tarik turun dan popover yang mudah diakses menggunakan pemosisian CSS dan API Popover.
Pola Menu Tarik Turun dan Popover adalah pelajaran CSS Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar CSS Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CSS Academy mencakup 4 pelajaran total.
API Popover
API Popover HTML (Chrome 114+, didukung secara luas) menyediakan perilaku tampil/sembunyi deklaratif: atribut popover pada target dan popovertarget pada tombol pemicu. JavaScript tidak diperlukan untuk buka/tutup dasar, termasuk penutupan saat mengeklik di luar dan penanganan tombol Escape.
Penataan Popover
Sasar elemen popover dengan [popover] atau :popover-open. Elemen semu ::backdrop tersedia untuk meredupkan latar belakang. Popover dirender di lapisan teratas seperti dialog, sehingga tidak ada masalah penumpukan z-index.
Pemosisian Menu Tarik-Turun dengan Pemosisian Jangkar
Pemosisian Jangkar CSS menempatkan popover relatif terhadap pemicunya tanpa JavaScript: anchor-name: --btn pada pemicu, position-anchor: --btn pada popover, lalu top: anchor(bottom); left: anchor(left) untuk menyelaraskannya di bawah pemicu.
Cadangan dengan position: absolute
Tanpa Pemosisian Jangkar, gunakan wadah induk yang diposisikan: position: relative pada wadah, dan position: absolute; top: 100%; left: 0 pada menu tarik-turun. Cara ini berfungsi di berbagai peramban, tetapi mengharuskan pemicu dan menu tarik-turun menjadi elemen bersaudara dalam wadah yang diposisikan.
CSS Menu Tarik-Turun
Tata daftar menu tarik-turun sebagai position: absolute; background: var(--color-surface); box-shadow: var(--shadow-md); border-radius: var(--radius-md); padding: var(--spacing-1) 0; min-width: 200px. Item menu menggunakan jarak dalam, latar belakang saat diarahkan, dan tampilan selebar penuh.
Animasi
Animasikan buka/tutup popover menggunakan @starting-style untuk kemunculan dan transition-behavior: allow-discrete untuk menganimasikan perubahan properti display. Dengan demikian, animasi masuk/keluar hanya dengan CSS dapat dikaitkan dengan keadaan popover terbuka atau tertutup.
Aksesibilitas Keyboard
Menu tarik-turun harus mendukung keyboard: tombol panah menavigasi item menu, Enter/Space mengaktifkan item yang mendapat fokus, dan Escape menutup menu serta mengembalikan fokus ke pemicu. API Popover menangani Escape secara otomatis; navigasi dengan tombol panah memerlukan penanganan peristiwa JavaScript.
ARIA untuk Menu Tarik-Turun Kustom
Menu tarik-turun kustom (yang tidak menggunakan API popover): tambahkan aria-haspopup="listbox" dan aria-expanded pada pemicu, role="listbox" pada daftar, serta role="option" dan aria-selected pada setiap item. Pembaca layar mengumumkan keadaan diperluas dan jumlah item.
Luapan dan Benturan dengan Area Pandang
Menu tarik-turun yang diposisikan di bawah pemicunya dapat meluap melewati bagian bawah area pandang. Deteksi hal ini dengan IntersectionObserver atau getBoundingClientRect, lalu balikkan menu tarik-turun ke atas pemicu. Pemosisian Jangkar CSS menangani hal ini dengan position-try-fallbacks.
Menu Tarik-Turun Bertingkat
Menu tarik-turun bertingkat (submenu) menambah kerumitan. Posisikan submenu di sebelah kanan item induknya. Tambahkan jeda sebelum menyembunyikannya saat tetikus keluar (menggunakan transition-delay CSS atau batas waktu JS) agar submenu tidak tertutup saat tetikus bergerak secara diagonal.
Pertimbangan Perangkat Sentuh
Menu tarik-turun yang dipicu saat diarahkan gagal pada perangkat sentuh karena tidak ada keadaan hover. Gunakan pemicu klik/ketuk secara universal. Penutupan saat mengetuk di luar dapat dilakukan melalui penutupan ringan API popover atau pemantau klik pada dokumen yang menutup menu tarik-turun yang terbuka.
Uji Pemahaman
Apa yang disediakan API Popover secara otomatis, yang sebelumnya memerlukan JavaScript kustom?
Ringkasan
API Popover dan Pemosisian Jangkar CSS secara bersama-sama memungkinkan pola menu tarik-turun dan popover yang deklaratif serta hanya memerlukan sedikit JavaScript. Untuk dukungan peramban yang lebih luas, pola wadah yang diposisikan dapat diandalkan. Aksesibilitas keyboard, atribut ARIA, penanganan benturan dengan area pandang, dan dukungan perangkat sentuh melengkapi komponen menu tarik-turun yang siap digunakan dalam produksi.
Belajar CSS dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 40
- Pelajaran
- 159
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola Menu Tarik Turun dan Popover” gratis?
Ya — teks lengkap “Pola Menu Tarik Turun dan Popover” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus CSS Academy, upgrade ke CoddyKit PRO. Kursus CSS Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pola Menu Tarik Turun dan Popover”?
Buat menu tarik turun dan popover yang mudah diakses menggunakan pemosisian CSS dan API Popover. Kamu berlatih CSS Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai CSS Academy?
Tidak diperlukan pengalaman sebelumnya. CSS Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Pola Menu Tarik Turun dan Popover” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran CSS Academy ini?
Ya. Setiap pelajaran CSS Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Komponen Kartu dengan Properti Khusus CSS
- Penataan Modal dan Dialog
- Pola Menu Tarik Turun dan Popover
- Komponen Tab dengan Trik :checked vs JS