六年前,我探索了原生的<细节>和<摘要>创建可访问的手风琴的元素。从那时起,网络平台不断发展,为这些元素引入了令人兴奋的新功能,例如独家开放行为和流畅动画。
在本文中,我们将重新审视<细节>并充分利用现代 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 属性,例如 interpolate-size 和 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; }
这是完整的实现:
对于不支持的浏览器,动画会优雅地回退,并且手风琴在没有平滑过渡的情况下仍保持功能。
和<摘要> elements 与现代 CSS 相结合,为创建交互式手风琴提供了一个轻量级且易于访问的解决方案。这些新的增强功能使它们对现代 Web 项目更具吸引力。尝试一下演示,让您的手风琴焕然一新、光彩夺目!
非常感谢您的阅读。如果您想在 Dev 之外与我联系,请来我的 twitter、bsky 和 linkedin 打个招呼吧?
以上是原生 HTML:重温手风琴的详细内容。更多信息请关注PHP中文网其他相关文章!