六年前,我探索了原生的和創建可訪問的手風琴的元素。從那時起,網路平台不斷發展,為這些元素引入了令人興奮的新功能,例如獨家開放行為和流暢動畫。

原生 HTML:手風琴
安德魯‧博恩 ・2019 年 1 月 4 日
在本文中,我們將重新審視並充分利用現代 CSS 屬性來為您的手風琴增添光彩。我還將分享一個展示這些功能的演示實作。
基礎知識:和
element 提供了一種在 HTML 中建立可切換部分的本機方法,其中
這是一個簡單的例子:
<details> <summary>Read more</summary> Some text to be hidden. </details>
點選摘要可切換關聯內容的可見性。無需 JavaScript!
增強功能:獨特的開放行為
為了模仿傳統的手風琴行為(一次只打開一個部分),您可以在
<details name="exclusive"> <summary>Section 1</summary> <p>Content for section 1.</p> </details> <details name="exclusive"> <summary>Section 2</summary> <p>Content for section 2.</p> </details>
此行為是本機行為,並且可以在現代瀏覽器中無縫運作!
使用 CSS 新增平滑動畫
為了讓開啟和關閉過渡更加平滑,我們可以使用現代 CSS 屬性,例如 interpolate-size 和 transition-behavior。
主要特性
- interpolate-size:允許在固有尺寸(如自動)和固定尺寸之間進行動畫處理。 此屬性目前僅在 Chrome 中支援。
- transition-behavior:當設定為允許離散時,通常無法進行動畫處理的屬性(如可見性和顯示)會等待而不是立即更新。
樣式範例
這是示範中使用的 CSS 的完整範例:
details { interpolate-size: allow-keywords; overflow: clip; margin-top: 0.125em; border: 1px solid #dddddd; background: #ffffff; color: #333333; border-radius: 3px; } details summary { display: block; cursor: pointer; position: relative; padding: 0.5em 0.5em 0.5em 0.7em; background: #ededed; color: #2b2b2b; border-radius: 3px 3px 0 0; } details:not([open]) summary:hover, details:not([open]) summary:focus { background: #f6f6f6; color: #454545; } details[open] summary { outline: 1px solid #003eff; background: #007fff; color: #ffffff; } details[open]::details-content { height: auto; } details::details-content { height: 0; overflow-y: clip; transition: content-visibility 475ms allow-discrete, height 475ms; } details main { padding: 1em 2.2em; }
它是如何運作的
- 高度動畫: interpolate-size 屬性允許在 height: 0 (關閉)和 height: auto (開啟)之間平滑過渡。不過,目前僅 Chrome 支援此功能。
- 可見性轉換:轉換行為屬性確保可見性變化看起來無縫。
示範:將所有內容整合在一起
這是完整的實作:
瀏覽器支援
- interpolate-size: 目前僅在 Chrome 支援。
- 轉換行為:大多數現代瀏覽器都支援。
對於不支援的瀏覽器,動畫會優雅地回退,並且手風琴在沒有平滑過渡的情況下仍保持功能。
結論
和 elements 與現代 CSS 相結合,為創建互動式手風琴提供了一個輕量級且易於訪問的解決方案。這些新的增強功能使它們對現代 Web 專案更具吸引力。試試示範,讓您的手風琴煥然一新、光彩奪目!
非常感謝您的閱讀。如果您想在 Dev 之外與我聯繫,請來我的 twitter、bsky 和 linkedin 打個招呼吧?
以上是原生 HTML:重溫手風琴的詳細內容。更多資訊請關注PHP中文網其他相關文章!

文章討論了CSS FlexBox,這是一種佈局方法,用於有效地對齊和分佈響應設計中的空間。它說明了FlexBox用法,將其與CSS網格進行了比較,並詳細瀏覽了瀏覽器支持。

本文討論了使用CSS創建響應網站的技術,包括視口元標籤,靈活的網格,流體媒體,媒體查詢和相對單元。它還涵蓋了使用CSS網格和Flexbox一起使用,並推薦CSS框架

本文討論了CSS盒裝屬性,該屬性控制了元素維度的計算方式。它解釋了諸如Content-Box,Border-Box和Padding-Box之類的值,以及它們對佈局設計和形式對齊的影響。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1
強大的PHP整合開發環境