搜索
首页web前端css教程原生 HTML:重温手风琴

六年前,我探索了原生的和创建可访问的手风琴的元素。从那时起,网络平台不断发展,为这些元素引入了令人兴奋的新功能,例如独家开放行为流畅动画

Native HTML: Accordion Revisited

原生 HTML:手风琴

安德鲁·博恩 ・2019 年 1 月 4 日

#html #css #a11y #设计

在本文中,我们将重新审视并充分利用现代 CSS 属性来为您的手风琴增添光彩。我还将分享一个展示这些功能的演示实现。

基础知识:和

element 提供了一种在 HTML 中创建可切换部分的本机方法,其中

充当可点击标签的元素。这使得您可以轻松地以最小的努力创建披露小部件。

这是一个简单的例子:

<details>
  <summary>Read more</summary>
  Some text to be hidden. 
</details>

单击摘要可切换关联内容的可见性。无需 JavaScript!

增强功能:独有的开放行为

为了模仿传统的手风琴行为(一次仅打开一个部分),您可以在

上使用 name 属性。元素。当元素具有相同的名称,打开一个元素会自动关闭组中的其他元素。

<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;
}

它是如何运作的

  1. 高度动画: interpolate-size 属性允许在 height: 0 (关闭)和 height: auto (打开)之间平滑过渡。不过,目前仅 Chrome 支持此功能。
  2. 可见性转换:转换行为属性确保可见性变化看起来无缝。

演示:将所有内容整合在一起

这是完整的实现:

浏览器支持

  • interpolate-size: 目前仅在 Chrome 中支持。
  • 转换行为:大多数现代浏览器都支持。

对于不支持的浏览器,动画会优雅地回退,并且手风琴在没有平滑过渡的情况下仍保持功能。

结论

和 elements 与现代 CSS 相结合,为创建交互式手风琴提供了一个轻量级且易于访问的解决方案。这些新的增强功能使它们对现代 Web 项目更具吸引力。尝试一下演示,让您的手风琴焕然一新、光彩夺目!

非常感谢您的阅读。如果您想在 Dev 之外与我联系,请来我的 twitter、bsky 和 ​​linkedin 打个招呼吧?

以上是原生 HTML:重温手风琴的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
'订阅播客”链接应在哪里?'订阅播客”链接应在哪里?Apr 16, 2025 pm 12:04 PM

有一段时间,iTunes是播客中的大狗,因此,如果您将“订阅播客”链接到喜欢:

浏览器引擎多样性浏览器引擎多样性Apr 16, 2025 pm 12:02 PM

当他们在2013年去Chrome时,我们失去了歌剧。与Edge今年早些时候也进行了同样的交易。迈克·泰勒(Mike Taylor)称这些变化为“减少

网络共享的UX注意事项网络共享的UX注意事项Apr 16, 2025 am 11:59 AM

从垃圾点击诱饵网站到大多数出版物的最多,共享按钮长期以来一直无处不在。然而,这些

每周平台新闻:Apple部署网络组件,渐进的HTML渲染,自托管关键资源每周平台新闻:Apple部署网络组件,渐进的HTML渲染,自托管关键资源Apr 16, 2025 am 11:55 AM

在本周的综述中,Apple进入Web组件,Instagram如何插入脚本以及一些思考的食物,以进行自托管关键资源。

git Pathspecs以及如何使用它们git Pathspecs以及如何使用它们Apr 16, 2025 am 11:53 AM

当我查看GIT命令的文档时,我注意到其中许多人都有选择。我最初以为这只是一个

产品图像的彩色拾取器产品图像的彩色拾取器Apr 16, 2025 am 11:49 AM

听起来有点像一个困难的问题,不是吗?我们经常没有成千上万种颜色的产品镜头,以便我们可以随身携带。我们也不是

黑暗模式与React和Themeprovider切换黑暗模式与React和Themeprovider切换Apr 16, 2025 am 11:46 AM

我喜欢网站具有“暗模式”选项时。黑暗模式使我更容易阅读网页,并帮助我的眼睛更放松。许多网站,包括

带有HTML对话框元素的一些动手带有HTML对话框元素的一些动手Apr 16, 2025 am 11:33 AM

这是我第一次查看HTML元素。我已经意识到了一段时间,但是尚未将其旋转。它很酷,

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境