Bagaimana untuk membuat menu akordion CSS sahaja?
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.
Mewujudkan CSS sahaja mengikut menu adalah cara yang baik untuk menambah kandungan interaktif tanpa bergantung pada JavaScript. Ia menggunakan :checked
kotak semak pseudo-kelas yang tersembunyi, dan pemilih saudara bersebelahan (
) untuk menukar penglihatan kandungan. Inilah cara membina satu langkah demi langkah.

1. Struktur HTML
Mulakan dengan struktur HTML yang bersih menggunakan kotak semak (atau butang radio) untuk mengawal setiap item mengikut. Setiap bahagian termasuk label (sebagai tajuk yang boleh diklik) dan div kandungan.
<div class = "accordion"> <div class = "accordion-item"> <input type = "checkbox" id = "Section1" name = "accordion" /> <label untuk = "Seksyen1"> Seksyen 1 </label> <div class = "accordion-content"> <p> Ini adalah kandungan untuk Bahagian 1. </P> </div> </div> <div class = "accordion-item"> <input type = "checkbox" id = "Section2" name = "accordion" /> <label untuk = "Section2"> Seksyen 2 </label> <div class = "accordion-content"> <p> Ini adalah kandungan untuk Bahagian 2. </P> </div> </div> <div class = "accordion-item"> <input type = "checkbox" id = "Section3" name = "accordion" /> <label untuk = "Section3"> Seksyen 3 </label> <div class = "accordion-content"> <p> Ini adalah kandungan untuk Bahagian 3. </P> </div> </div> </div>
Gunakan
type="radio"
dan bukannyacheckbox
jika anda hanya mahu satu bahagian dibuka pada satu masa.
2. Gaya CSS Asas
Gaya mengikut kelihatan bersih dan berfungsi. Sembunyikan input kotak semak dan gaya label sebagai tajuk yang boleh diklik.
.accordion { Lebar: 100%; Max-Width: 600px; Margin: 0 Auto; font-family: arial, sans-serif; } .accordion-item { Sempadan-Bottom: 1px Solid #ddd; } .Accordion-item label { paparan: blok; Padding: 15px; latar belakang warna: #F5F5F5; Font-Weight: Bold; kursor: penunjuk; PILIH PENGGUNA: Tiada; Peralihan: Latar belakang warna 0.3s mudah; } .Accordion-item label: hover { latar belakang warna: #e9e9e9; } .Ccordion-Content { Max-Height: 0; Limpahan: Tersembunyi; Peralihan: Max-tinggi 0.3s mudah keluar, padding 0.3s mudah; Padding: 0 15px; latar belakang warna: #fff; } .accordion-content p { Margin: 10px 0; }
3. Togol kandungan dengan CSS
Gunakan :checked
dan
(adik bersebelahan) Combiner untuk mengembangkan kandungan apabila kotak semak diperiksa.

#Seksyen1: Label yang diperiksa. Akademik-kandungan, #Seksyen2: Label yang diperiksa. Akal-kandungan, #Seksyen3: Label yang disemak. Accordion-Content { Max-Height: 200px; Padding: 15px; }
Trik
max-height
membolehkan pembukaan/penutupan lancar. Tetapkannya cukup tinggi agar sesuai dengan kandungan anda, tetapi tidak terlalu tinggi untuk mengelakkan animasi yang panjang.
4. Pilihan: Tambah ikon terbuka/tutup
Anda boleh menambah anak panah kecil atau plus/tolak menggunakan elemen pseudo.
.Accordion-item label :: selepas { Kandungan: ''; Terapung: betul; } #Seksyen1: Label yang diperiksa :: Selepas, #Seksyen2: Label yang diperiksa :: Selepas, #Seksyen3: Label yang disemak :: Selepas { Kandungan: ' -'; }
Ini memberi pengguna isyarat visual mengenai keadaan setiap bahagian.
Perkara utama untuk diingat
- Kotak semak mesti datang sebelum label dan kandungan dalam HTML untuk pemilih saudara untuk berfungsi.
- Gunakan
max-height
dan bukannyadisplay: none
untuk peralihan yang lancar. - Input radio (
type="radio"
) hanya membenarkan satu item terbuka pada satu masa; Kotak semak membenarkan beberapa item terbuka. - Kebolehcapaian: Pertimbangkan untuk menambah atribut
aria-expanded
danaria-controls
jika anda meningkatkan dengan JS yang minimum kemudian.
Pada asasnya, ia adalah penggunaan bijak bentuk input dan pemilih CSS untuk mensimulasikan interaksi. Tiada JavaScript diperlukan, dan ia berfungsi di semua pelayar moden.
Atas ialah kandungan terperinci Bagaimana untuk membuat menu akordion 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)

Untuk menukar gaya senarai CSS, gunakan jenis gaya pertama untuk menukar gaya peluru atau penomboran. 1. Gunakan jenis gaya senarai untuk menetapkan peluru UL ke cakera, bulatan atau persegi, dan bilangan OL adalah perpuluhan, rendah alpha, atas-alpha, rendah-Rom atau atas-Rom. 2. Keluarkan tag sepenuhnya dengan gaya senarai: Tiada. 3. Gunakan senarai gaya senarai: URL ('Bullet.png') untuk menggantikannya dengan imej tersuai. 4. Gunakan senarai gaya senarai: dalam

Adalah mungkin untuk membuat slider karusel automatik yang responsif dengan CSS tulen, hanya menggabungkan struktur HTML, susun atur flexbox, dan animasi CSS. 2. Pertama membina bekas HTML semantik yang mengandungi pelbagai syarat cadangan, setiap .Item mengandungi kandungan rujukan dan maklumat pengarang. 3. Gunakan bekas induk untuk menetapkan paparan: flex, lebar: 300% (tiga slaid) dan gunakan limpahan: tersembunyi untuk mencapai susunan mendatar. 4. Gunakan @KeyFrames untuk menentukan transformasi translatex dari 0% hingga -100%, dan menggabungkan animasi: scroll15slinearinfinite untuk mencapai tatal automatik lancar. 5. Tambah media

Gunakan CSS untuk membuat sempadan bertitik, hanya tetapkan atribut sempadan untuk bertitik. Sebagai contoh, "Sempadan: 3PXDotted#000" boleh menambah sempadan titik hitam 3-pixel ke elemen. Dengan menyesuaikan lebar sempadan, saiz titik boleh diubah. Sempadan yang lebih luas menghasilkan mata yang lebih besar. Anda boleh menetapkan sempadan bertitik untuk sisi tertentu, seperti "Border-top: 2PxDotteded". Sempadan bertitik sesuai untuk elemen peringkat blok seperti div dan input. Mereka sering digunakan dalam keadaan fokus atau kawasan yang boleh diedit untuk meningkatkan kebolehcapaian. Perhatikan kontras warna. Pada masa yang sama, berbeza dengan gaya garis pendek Dashed, bertitik membentangkan bentuk titik bulat. Ciri ini digunakan secara meluas dalam semua pelayar arus perdana.

CSSgradientsprovidesmoothcolortransitionswithoutimages.1.Lineargradientstransitioncolorsalongastraightlineusingdirectionsliketobottomorangleslike45deg,andsupportmultiplecolorstopsforcomplexeffects.2.Radialgradientsradiatefromacentralpointusingcircleo

Untuk membuat kesan meniru kaca CSS, anda perlu menggunakan penapis latar belakang untuk mencapai latar belakang kabur, menetapkan latar belakang lut seperti RGBA (255,255,255,0.1), tambah sempadan halus dan bayang-bayang untuk meningkatkan rasa hierarki, dan pastikan terdapat kandungan visual yang cukup di belakang unsur-unsur; 1. Gunakan penapis latar belakang: blur (10px) untuk mengaburkan kandungan latar belakang; 2. Gunakan RGBA atau HSLA untuk menentukan latar belakang telus untuk mengawal tahap ketelusan; 3. Tambah 1PxSolidrgba (255,255,255,0.3) sempadan dan bayang-bayang kotak untuk meningkatkan tiga dimensi; 4. Pastikan bekas mempunyai latar belakang yang kaya seperti gambar atau tekstur untuk membentangkan kesan penembusan kabur; 5. Ia serasi dengan pelayar lama

UseBuilt-IncursortypesLikePointer, Bantuan, Ornot-AllowedtoprovideimmediatevisualFeedBackFordifferentInteractivements.2.applycustomcursorimageswithTheCursorPropertyuseSaurl, OptionallySpecyfyLySpotandingLudinglikeAtoToAllik.

Thegrid-template-areaspropertyallowsdeveloperstercreateintuitive, readableLelayoutsbydefiningnamedgridareas; eachstringRepresentowandeachwordacolumncell, withgrid-areanamesonchildelementsmatchingthoseIntHetHetPlate, sedemikian "headerheaderererheaderererheadererheadererheadererheadererheadererheadererheadererheadererheadererheaderheaderheadererheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheaderheader."

Untuk menambah bayang-bayang kotak, gunakan atribut box-shadow; 1. Sintaks asas adalah badai kotak: mendatar mengimbangi vertikal offset blur radius pengembangan radius bayang-bayang dalam warna; 2. Tiga nilai pertama diperlukan, selebihnya adalah pilihan; 3. Gunakan RGBA () atau HSLA () untuk mencapai kesan telus; 4. Radius pengembangan positif memperluaskan bayang -bayang dan nilai negatif dikurangkan; 5. Pelbagai bayang -bayang boleh ditambah dengan pemisahan koma; 6. Berlebihan harus dielakkan untuk memastikan penglihatan diuji pada latar belakang yang berlainan; Atribut ini disokong dengan baik oleh penyemak imbas, dan penggunaan yang munasabah dapat meningkatkan tekstur reka bentuk.
