AUTO · 自动演示
参数调改
PLAYGROUND
展开时长--dur_ms
1501000
强调色--accent
标题颜色--text_color
正文颜色--muted_color
缓动曲线--ease
实现要点
NOTES- 01
展开核心是 grid-template-rows: 0fr→1fr 的过渡:面板为单行 grid,fr 可插值,行高始终贴合内容真实高度,无需 max-height magic number;Chrome/Edge 107+ 支持。
- 02
内层必须 overflow:hidden,且 padding 放在内层元素上而不是面板本身——否则 0fr 收起后残留 padding 高度、面板关不严。
- 03
原生按钮承载 aria-expanded,配相邻选择器 [aria-expanded='true'] + .acc-panel 驱动展开,键盘操作天然可用;演示页用 .open 类做初始展开态,二者写法并存展示。
- 04
图标是加号伪元素对:竖杆 rotate(90deg) 后与横杆重叠成减号,颜色同时切到强调色,全部只动 transform 与颜色。
- 05
多个面板可同时展开(无互斥逻辑),如需手风琴互斥由宿主 JS 切换 aria-expanded 即可,动画层零改动。
- 06
reduced-motion:过渡压到 0.01ms,面板展开收起变为瞬时切换。
源代码
SOURCE
加载源代码…