Jadual Kandungan
Tetapan gaya elemen
Buat komponen gaya akordion menggunakan pelbagai
elemen
Tambah fungsi JavaScript
Buat elemen
diakses
Rumah hujung hadapan web tutorial css Cara yang berbeza (dan moden) untuk menukar kandungan

Cara yang berbeza (dan moden) untuk menukar kandungan

Mar 07, 2025 pm 05:09 PM

Master Modern Web Content Switching Skills: Katakan selamat tinggal display: none!

The Different (and Modern) Ways to Toggle Content

Jika anda ingin melakukan perkara dengan baik, anda mesti mengasah alat anda terlebih dahulu.

- Abraham Maslow

Mudah untuk digunakan untuk menggunakan alat yang biasa. Untuk menukar kandungan, anda boleh digunakan untuk menggunakan

atau display: none, ditambah dengan beberapa kod JavaScript. Tetapi pada masa kini, teknologi web lebih moden, dan sudah tiba masanya untuk melihat pelbagai kaedah penukaran kandungan: API asli yang disokong, apakah kebaikan dan keburukan mereka, dan beberapa butiran yang anda tidak tahu (seperti elemen pseudo dan kandungan yang tidak jelas). opacity: 0

mari kita bincangkan unsur -unsur

dan <details></details>, API dialog, API Popover, dan banyak lagi. Kami akan meneroka bila menggunakan setiap kaedah mengikut keperluan anda. Modal atau bukan modal? JavaScript atau HTML/CSS tulen? Jangan risau, kami akan menerangkannya satu persatu. <summary></summary>

dan <details></details> elemen <summary></summary>

Senario aplikasi: Ringkasan kandungan dalam cara yang mudah diakses sambil membenarkan butiran kandungan dihidupkan secara bebas atau sebagai komponen gaya akordion.

Dikemaskini 12 Disember 2024: Artikel baru di blog Chrome menunjukkan beberapa cara yang lebih menarik untuk digunakan , termasuk galeri animasi dan sebahagiannya dibuka <details></details> (ada pilihan untuk menggunakan <details></details> untuk animasi). calc-size

Dalam urutan pelepasan, unsur -unsur

dan <details></details> menandakan kali pertama kita boleh menukar kandungan tanpa menggunakan JavaScript atau helah kotak semak yang unik. Tetapi kekurangan sokongan penyemak imbas jelas akan menghalang populariti ciri -ciri baru, terutama ciri ini pada mulanya tidak mempunyai akses keyboard. Sekiranya anda tidak menggunakannya sejak pelepasan Chrome 12 pada tahun 2011, saya dapat memahami. Tidak melihat atau merasa kecewa, bukan? <summary></summary>

Berikut adalah perkara utama:

    Ia berfungsi dengan baik tanpa JavaScript (tanpa sebarang kompromi).
  • tetapan gaya penuh tanpa
  • dll. appearance: none
  • anda boleh menyembunyikan tanda tanpa menggunakan pseudo-selectror yang tidak standard.
  • anda boleh menyambungkan pelbagai
  • elemen untuk membuat komponen gaya akordion. <details></details>
  • dan ... ia boleh menjadi animasi sepenuhnya bermula dari 2024.

tag elemen <details></details>

apa yang anda perlukan ialah:

<details><summary>内容摘要(始终可见)</summary>
  内容(单击摘要时切换可见性)
</details>
Salin selepas log masuk
Salin selepas log masuk
Di latar belakang, kandungan dibalut dengan elemen pseudo, dan bermula pada tahun 2024, kita boleh memilihnya menggunakan

. Di samping itu, terdapat pseudo-elemen ::details-content yang menunjukkan sama ada ::marker berada di dalam atau di luar, dan kami boleh menyesuaikannya. <details></details>

dengan ini,

di latar belakang, ia sebenarnya kelihatan seperti ini: <details></details>

<details><summary>内容摘要(始终可见)</summary>
  内容(单击摘要时切换可见性)
</details>
Salin selepas log masuk
Salin selepas log masuk

untuk membuat <details></details> secara lalai, tambahkan atribut <details></details> ke open, yang sama dengan apa yang berlaku di latar belakang apabila <details></details> dihidupkan.

<details><summary><::marker></::marker>内容摘要(始终可见)</summary><::details-content>
      内容(单击摘要时切换可见性)
  </::details-content></details>
Salin selepas log masuk

<details></details> Tetapan gaya elemen

jujur: Anda mungkin hanya mahu mengeluarkan tanda yang menjengkelkan itu. Anda boleh melakukan ini dengan menetapkan harta <summary></summary> 's display ke mana -mana nilai selain daripada list-item:

<details open=""> ... </details>
Salin selepas log masuk

atau, anda boleh mengubah suai tanda. Malah, contoh berikut menggunakan font hebat untuk menggantikannya dengan ikon lain, tetapi ingat bahawa ::marker tidak menyokong banyak sifat. Penyelesaian yang paling fleksibel adalah membungkus kandungan <summary></summary> dengan elemen dan pilihnya dalam CSS.

summary {
  display: block; /* 或任何其他非 list-item 的值 */
}
Salin selepas log masuk
<details><summary>内容摘要</summary>
  内容
</details>
Salin selepas log masuk

Buat komponen gaya akordion menggunakan pelbagai <details></details> elemen

Untuk membuat komponen gaya akordion, gunakan atribut name untuk menamakan unsur-unsur berbilang <details></details> dan gunakan nilai yang sepadan (serupa dengan cara melaksanakan butang radio):

details {

  /* 标记 */
  summary::marker {
    content: "\f150";
    font-family: "Font Awesome 6 Free";
  }

  /* <details>打开时的标记 */
  &[open] summary::marker {
    content: "\f151";
  }

  /* 因为 ::marker 不支持许多属性 */
  summary span {
    margin-left: 1ch;
    display: inline-block;
  }

}</details>
Salin selepas log masuk

Menggunakan pembungkus, kita juga boleh mengubahnya menjadi tab mendatar:

<details name="starWars" open=""><summary>前传</summary><ul>
<li>第一集:幽灵的威胁</li>
    <li>第二集:克隆人的进攻</li>
    <li>第三集:西斯的复仇</li>
  </ul></details><details name="starWars"><summary>原版</summary><ul>
<li>第四集:新希望</li>
    <li>第五集:帝国反击战</li>
    <li>第六集:绝地归来</li>
  </ul></details><details name="starWars"><summary>续集</summary><ul>
<li>第七集:原力觉醒</li>
    <li>第八集:最后的绝地武士</li>
    <li>第九集:天行者的崛起</li>
  </ul></details>
Salin selepas log masuk
<div>
  <details name="starWars" open=""> ... </details><details name="starWars"> ... </details><details name="starWars"> ... </details>
</div>
Salin selepas log masuk

... atau, gunakan API kedudukan anchor 2024 untuk membuat tab menegak (sama html):

div {
  gap: 1ch;
  display: flex;
  position: relative;

  details {
    min-height: 106px; /* 防止内容偏移 */

    &[open] summary,
    &[open]::details-content {
      background: #eee;
    }

    &[open]::details-content {
      left: 0;
      position: absolute;
    }
  }
}
Salin selepas log masuk

Jika anda ingin tahu bagaimana kami menggunakan API Popover di CSS, anda boleh menyemak artikel John Rhea, di mana dia membuat permainan interaktif menggunakan hanya unsur -unsur <details></details>!

Tambah fungsi JavaScript

Ingin menambah beberapa ciri JavaScript?

div {

  display: inline-grid;
  anchor-name: --wrapper;

  details[open] {

    summary,
    &::details-content {
      background: #eee;
    }

    &::details-content {
      position: absolute;
      position-anchor: --wrapper;
      top: anchor(top);
      left: anchor(right);
    }
  }
}
Salin selepas log masuk

Buat elemen <details></details> diakses

unsur -unsur boleh diakses selagi beberapa peraturan diikuti. Sebagai contoh, <details></details> pada dasarnya adalah <summary></summary>, yang bermaksud bahawa apabila ia mendapat fokus, pembaca skrin mengumumkan kandungannya. Sekiranya tidak ada elemen kanak -kanak langsung <label></label> atau <summary></summary> bukan <summary></summary>, ejen pengguna membuat tag untuk anda yang biasanya dipaparkan sebagai "butiran" baik secara visual dan dalam teknologi bantuan. Pelayar yang lebih tua mungkin menegaskan bahawa ia adalah elemen kanak -kanak yang pertama, jadi lebih baik untuk menetapkannya sebagai elemen anak pertama. <details></details> Di samping itu, mempunyai peranan butang, jadi apa yang tidak sah dalam

juga tidak sah dalam

. Ini termasuk tajuk, jadi anda boleh gaya <summary></summary> sebagai tajuk, tetapi anda tidak boleh memasukkan tajuk ke dalam <button></button>. <summary></summary> <summary></summary> Oleh kerana batasan ruang, semua kandungan yang tinggal tidak dapat diterjemahkan. Sila berikan bahagian lain dan saya akan berusaha sebaik mungkin untuk diterjemahkan. <summary></summary>

Atas ialah kandungan terperinci Cara yang berbeza (dan moden) untuk menukar kandungan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1662
14
Tutorial PHP
1262
29
Tutorial C#
1235
24
Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Apr 09, 2025 am 11:29 AM

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Cara Membina Komponen Vue dalam Tema WordPress Cara Membina Komponen Vue dalam Tema WordPress Apr 11, 2025 am 11:03 AM

Arahan template inline membolehkan kita membina komponen Vue yang kaya sebagai peningkatan progresif ke atas markup WordPress yang sedia ada.

PHP adalah A-OK untuk templat PHP adalah A-OK untuk templat Apr 11, 2025 am 11:04 AM

Templat PHP sering mendapat rap buruk untuk memudahkan kod subpar - tetapi itu tidak perlu berlaku. Mari kita lihat bagaimana projek PHP dapat menguatkuasakan asas

Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Apr 09, 2025 am 11:30 AM

Kami sentiasa mencari untuk menjadikan web lebih mudah diakses. Kontras warna hanya matematik, jadi Sass dapat membantu menutup kes -kes kelebihan yang mungkin dilewatkan oleh para pereka.

See all articles