


Dua isu menggayakan elemen butiran dan bagaimana menyelesaikannya
Mar 28, 2025 am 10:42 AM Sebelum ini, mewujudkan blok kandungan yang mudah diperkembangkan yang diperlukan JavaScript atau workarounds CSS kompleks. Mengubah HTML juga boleh menjadi rumit. Sekarang, yang<details></details>
dan<summary></summary>
Unsur -unsur (membentuk "widget pendedahan") memudahkannya dengan ketara. Kami menggunakannya secara meluas di tempat kerja untuk Soalan Lazim, sebagai contoh.
Menangani cabaran gaya biasa
Manakala<details></details>
dan<summary></summary>
Secara semulajadi menyediakan fungsi berkembang/runtuh, anda mungkin masih memerlukan CSS untuk persembahan yang optimum. Tanpa gaya, dua isu utama timbul:
Isu 1:<summary></summary>
Kursor
The<summary></summary>
elemen, sementara interaktif, mungkir kepada kursor pemilihan teks dan bukannya penunjuk yang diharapkan.
Isu 2: Unsur blok bersarang di<summary></summary>
Elemen peringkat blok bersarang (seperti tajuk) di dalam<summary></summary>
menyebabkan mereka muncul di bawah anak panah, bukan sebaris.
Penyelesaian CSS
Untuk menyelesaikannya, tambahkan gaya ini ke Reset CSS anda:
Ringkasan Butiran { kursor: penunjuk; } Butiran Ringkasan> * { paparan: sebaris; }
Mari kita periksa setiap isu dan penyelesaiannya secara terperinci.
Menyesuaikan<summary></summary>
Kursor
Kursor harus secara visual mencerminkan interaksi yang dimaksudkan. Kursor teks lalai dihidupkan<summary></summary>
Unsur -unsur, sementara secara teknikal betul (teks boleh dipilih), kurang intuitif daripada penunjuk.
Penyelesaiannya mudah:
Ringkasan Butiran { kursor: penunjuk; }
Banyak laman web yang terkenal, termasuk dokumen web MDN dan GitHub, sudah menggunakan gaya ini untuk widget pendedahan mereka. cursor: text
mungkin mencerminkan seleksi teks ringkasan, tetapi penunjuk umumnya lebih baik untuk elemen interaktif. Perhatikan bahawa menukar kursor hanya mempengaruhi penampilan visual; Selectability tetap tidak berubah.
Memaparkan bersarang<summary></summary>
Kandungan dalam talian
Untuk Soalan Lazim, saya sering membungkus soalan dalam tajuk (misalnya,<h3></h3>
) dalam<summary></summary>
:
<details><summary><h3> Adakah rancangan 504 anak saya akan dilaksanakan?</h3></summary><p> Ya. Sama seperti musim bunga, pengurus kes akan menjangkau pelajar.</p></details>
Ini menawarkan beberapa kelebihan:
- Gaya yang konsisten: Mengekalkan konsistensi visual dengan tajuk lain.
- Keserasian IE/Edgehtml: Menyediakan sandaran untuk pelayar yang lebih tua yang tidak menyokong
<details></details>
. - Kebolehcapaian: Navigasi Teknologi Pembantu AIDS (walaupun tafsiran oleh pembaca skrin boleh berbeza -beza, seperti yang dibincangkan di bawah).
Tajuk vs butang
The<summary></summary>
Unsur berkelakuan seperti butang (secara tersirat mempunyai role=button
), namun tidak seperti butang, ia membolehkan tajuk bersarang. Ini menimbulkan konflik:
- Headings Aid Navigation.
- Butang biasanya menyentuh semantik dari elemen bersarang.
Keserasian pembaca skrin tidak konsisten di sini. NVDA dan Voiceover mengenali tajuk di dalam<summary></summary>
, tetapi rahang tidak. Oleh itu, semasa menggayakan tajuk dalam<summary></summary>
mungkin, tafsiran semantik mereka tidak dijamin.
Gaya dalam talian
Untuk mengelakkan anak panah daripada muncul di atas tajuk, gunakan gaya sebaris untuk unsur -unsur yang bersarang terus dalam<summary></summary>
:
Butiran Ringkasan> * { paparan: sebaris; }
Gunakan inline
, bukan inline-block
, untuk mengelakkan isu pembalut. Sementara menggoda untuk menggunakan display: flex
on<summary></summary>
, ini menyembunyikan anak panah.
Bonus: Tidak termasuk gaya penjelajah internet
Oleh kerana versi IE dan lebih tua tidak menyokong<details></details>
, Elakkan menggunakan gaya tersuai kepada mereka menggunakan pertanyaan ciri:
@Supports not (-ms-im-align: auto) { Ringkasan Butiran { kursor: penunjuk; } Butiran Ringkasan> * { paparan: sebaris; } /* Lain -lain<details> /<summary> Gaya */ }</summary></details>
IE mengabaikan blok ini sepenuhnya. EdgeHTML juga mengabaikannya kerana cek -ms-ime-align
. Perhatikan bahawa versi krom dan safari yang sangat lama (dengan bahagian pasaran yang tidak dapat dielakkan) juga kekurangan sokongan pertanyaan ciri. Blok @supports (details)
akan menjadi ideal tetapi mempunyai sokongan penyemak imbas yang kurang.
Kesimpulan
Dengan struktur HTML yang betul dan gaya CSS ini, anda boleh menyesuaikan widget pendedahan anda dengan mudah. Ingat bahawa semasa menggayakan<summary></summary>
Unsur -unsur adalah mudah, keserasian pembaca skrin untuk tajuk bersarang memerlukan pertimbangan.
Atas ialah kandungan terperinci Dua isu menggayakan elemen butiran dan bagaimana menyelesaikannya. 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)

Topik panas

AutoPrefixer adalah alat yang secara automatik menambah awalan vendor ke atribut CSS berdasarkan skop penyemak imbas sasaran. 1. Ia menyelesaikan masalah mengekalkan awalan secara manual dengan kesilapan; 2. Bekerja melalui borang pemalam postcss, menghuraikan CSS, menganalisis atribut yang perlu diawali, dan menjana kod mengikut konfigurasi; 3. Langkah-langkah penggunaan termasuk memasang pemalam, menetapkan senarai pelayar, dan membolehkan mereka dalam proses membina; 4. Nota termasuk tidak menambah awalan secara manual, menyimpan kemas kini konfigurasi, awalan tidak semua atribut, dan disyorkan untuk menggunakannya dengan preprocessor.

TOCREATESTICKYHEADERSANDFOOTERSWITHCSS, USEPOSISI: STICKYFORHEADERSWITHOPVARUEANDZ-INDEX, MemastikanParentContainersdon'Trestrictit.1.ForstickyHeaders: SetPosition: Sticky, atas: 0, Z-index, dan BEBERKOORSICHISTORS.2.FORTOORSTICE: FORBORTORSIS.2.FORTORSICHORORS.

Terdapat tiga cara untuk membuat pemutar pemuatan CSS: 1. Gunakan pemutar asas sempadan untuk mencapai animasi mudah melalui HTML dan CSS; 2. Gunakan pemutar tersuai pelbagai mata untuk mencapai kesan lompat melalui masa kelewatan yang berlainan; 3. Tambahkan pemutar dalam butang dan beralih kelas melalui JavaScript untuk memaparkan status pemuatan. Setiap pendekatan menekankan pentingnya butiran reka bentuk seperti warna, saiz, kebolehcapaian dan pengoptimuman prestasi untuk meningkatkan pengalaman pengguna.

Mudah alih-firstcssdesignrequiressettingtheViewportmetatag, menggunakan pelindung, stylingfromsmallscreensup, optimizingtypographyandtouchtargets.first, addtocontrolscaling.second, use%, eM, orreminsteadofpixelflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflexflex

Untuk membuat susun atur grid responsif intrinsik, kaedah teras adalah menggunakan mod berulang CSSGRID (auto-fit, minmax ()); 1. Tetapkan grid-templat-lajur: ulangi (auto-fit, Minmax (200px, 1FR)) untuk membiarkan penyemak imbas secara automatik menyesuaikan bilangan lajur dan menghadkan lebar minimum dan maksimum setiap lajur; 2. Gunakan jurang untuk mengawal jarak grid; 3. Bekas hendaklah ditetapkan kepada unit relatif seperti lebar: 100%, dan gunakan kotak saiz: kotak sempadan untuk mengelakkan kesilapan pengiraan lebar dan memusatkannya dengan margin: auto; 4. Secara pilihan menetapkan ketinggian baris dan penjajaran kandungan untuk meningkatkan konsistensi visual, seperti baris

Untuk menjadikan keseluruhan susun atur grid berpusat di viewport, ia dapat dicapai dengan kaedah berikut: 1. Gunakan margin: 0Auto untuk mencapai pusat mendatar, dan bekas perlu ditetapkan untuk menetapkan lebar tetap, yang sesuai untuk susun atur tetap; 2. Gunakan Flexbox untuk menetapkan sifat-sifat yang wajar dan menyelaraskan-item di dalam bekas luar, dan menggabungkan min yang tinggi: 100VH untuk mencapai pusat menegak dan mendatar, yang sesuai untuk senario paparan skrin penuh; 3. Gunakan harta benda-item tempat CSSGRID untuk cepat berpusat pada bekas induk, yang mudah dan mempunyai sokongan yang baik dari pelayar moden, dan pada masa yang sama, adalah perlu untuk memastikan bahawa bekas induk mempunyai ketinggian yang mencukupi. Setiap kaedah mempunyai senario dan sekatan yang berkenaan, hanya pilih penyelesaian yang sesuai mengikut keperluan sebenar.

Featuredetectionincsusing@supportschecksifabrowsersupportsaspecificfeatureBeforeapplyingrelatedStyles.1.itusesconditionalcssblocksbasedonproperty-nilai, suchas@supports (paparan: grid)

Untuk menangani keserasian pelayar CSS dan isu awalan, anda perlu memahami perbezaan sokongan penyemak imbas dan menggunakan awalan vendor dengan munasabah. 1. Memahami masalah biasa seperti Flexbox dan sokongan grid, kedudukan: prestasi tidak sah, dan prestasi animasi adalah berbeza; 2. Periksa status sokongan ciri CANIUSE Ciri; 3. Gunakan dengan betul -webkit-, -moz-, -ms-, -o- dan awalan pengeluar lain; 4. Adalah disyorkan untuk menggunakan autoprefixer untuk menambah awalan secara automatik; 5. Pasang postcss dan konfigurasi penyemak imbas untuk menentukan penyemak imbas sasaran; 6. Secara automatik mengendalikan keserasian semasa pembinaan; 7. Ciri -ciri pengesanan moden boleh digunakan untuk projek lama; 8. Tidak perlu meneruskan konsistensi semua pelayar,
