You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

最后一个<details>元素无法按预期实现过渡效果的问题排查

问题:::details-content结合尺寸插值时,末尾details元素过渡失效

背景说明

  • 代码使用了较新的CSS特性,目前仅在Chrome浏览器中可正常运行
  • 尝试通过**尺寸插值(size interpolation)**与<details>的伪元素::details-content实现元素展开时的过渡动画,但发现最后一个details元素完全无法触发过渡,除非其后方紧跟其他元素

带有末尾div(正常工作)

当最后一个details后存在其他元素时,所有过渡均正常:

body {
    min-height: 100svh;
}
details {
    interpolate-size: allow-keywords;
}
details > div {
    overflow:hidden;
}
details::details-content {
    block-size: 0;
    transition: block-size 0.2s ease-in-out, content-visibility 0.2s;
    transition-behavior: allow-discrete;
}
details[open]::details-content {
    block-size: auto;
}
<html lang="en">
  <head>
    <meta charset="utf-8">
  </head>

  <body>
    
    <details>
        <summary>summary</summary>
        <div>content</div>
    </details>
    
    <details>
        <summary>summary</summary>
        <div>content</div>
    </details>
    
    <details>
        <summary>summary</summary>
        <div>content</div>
    </details>
    
    <div>end</div>
  </body>
</html>

移除末尾div(最后一个元素过渡失效)

移除末尾的div后,最后一个details元素的过渡效果完全失效:

body {
    min-height: 100svh;
}
details {
    interpolate-size: allow-keywords;
}
details > div {
    overflow:hidden;
}
details::details-content {
    block-size: 0;
    transition: block-size 0.2s ease-in-out, content-visibility 0.2s;
    transition-behavior: allow-discrete;
}
details[open]::details-content {
    block-size: auto;
}
<html lang="en">
  <head>
    <meta charset="utf-8">
  </head>

  <body>
    
    <details>
        <summary>summary</summary>
        <div>content</div>
    </details>
    
    <details>
        <summary>summary</summary>
        <div>content</div>
    </details>
    
    <details>
        <summary>summary</summary>
        <div>content</div>
    </details>
    
  </body>
</html>

内容的提问来源于stack exchange,提问作者dimmerz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 07:28:12