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

如何为主details标签添加专属切换动画:+转X、∨转向上箭头

实现主
元素展开时的图标翻转动画(不影响嵌套元素)

要实现你要的效果,只需调整CSS选择器范围,利用details[open]伪类触发展开状态样式,同时避免样式影响内部嵌套的

元素,具体修改如下:

修改后的CSS代码

.main-summary:before {
  content    : "+";
  font-size  : 2em;
  padding    : 0 0.5em;
  display    : inline-block;
  transition : .5s;
  color      : grey;
  transform  : rotate(0deg);
}
/* 仅给主summary添加右侧箭头,避免影响嵌套的summary */
.main-summary:after {
  padding     : 0px .5em;
  text-align  : right;
  float       : right;
  display     : inline-block;
  content     : "∨";
  font-size   : .7em;
  transition  : .5s;
  width       : 90%;
  font-weight : 700;
}

/* 主details展开时,将+旋转45度变为X */
details[open] .main-summary:before {
  transform: rotate(45deg);
}

/* 主details展开时,将右侧箭头旋转180度变为向上箭头 */
details[open] .main-summary:after {
  transform: rotate(180deg);
}

对应的HTML代码(无需修改)

<details>
  <summary class="main-summary">
    <p>Main summary</p>
  </summary>
  <details>
    <summary>
      <p>Text in summary</p>
    </summary>
    <p>123</p>
  </details>
</details>

关键说明

  • 将原来全局的summary:after改为.main-summary:after,确保右侧箭头样式仅作用于主summary,不会影响内部嵌套的summary元素
  • 借助details[open]伪类选择器,仅在主
    处于展开状态时修改对应伪元素的transform属性,实现图标翻转的平滑动画
  • 保留原有的transition: .5s属性,保证图标切换时的过渡效果自然

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:39:19