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

能否仅用CSS实现details标签展开后内容与summary横向并排?

实现details展开后summary与内容横向并排的纯CSS方案

嘿,这个探索性的问题真的挺有意思的!我完全懂你想摆脱额外父容器和display:contents限制的想法——毕竟就是想折腾原生标签的潜力嘛😉

其实不用绕弯子,直接把<details>本身设置成flex容器就行,利用它原生的展开/折叠行为来控制内容显示,完美符合你的需求:

<details style="display: flex; margin: 10px auto; padding: 0 20px;">
  <summary style="background-color:#d80000; background-position: center center; background-repeat: no-repeat; background-size: cover; height: 200px; outline: 1px solid #ffffff; outline-offset: -15px; color: #ffffff; text-align: center; padding-top: 25px; font-size: 0; width: 33%;">
    <span style="display: block; font-size: 10px; letter-spacing: 4px; margin-bottom: 5px; text-transform: uppercase;">Title</span>
  </summary>
  <article style="border: 1px solid #000000; padding: 10px; font-size: 12px;">
    Here's stuff
  </article>
</details>

原理说明:

  • 直接给<details>设置display: flex,让它成为flex容器,这样<summary>和内部内容(这里是<article>)就会自动成为flex子项。
  • 依赖<details>的原生行为:折叠状态下,summary之外的内容会被自动隐藏;展开后这些内容会显示出来,同时因为flex布局的特性,自然和summary横向并排。
  • 你可以通过调整width、flex-grow等属性来灵活控制两者的宽度比例,完全不需要额外的嵌套或者特殊属性。

这个方案既简洁又符合你的要求,没有用到伪类(完全依赖原生标签行为),也不需要额外父容器,完美适配你探索原生标签边界的需求~

内容的提问来源于stack exchange,提问作者CSS-Only

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:47:36