标签关闭时其内部特定元素仍保持可见
" />
无法仅通过 CSS 实现 关闭时内部某子元素(如第二个 )持续显示;必须借助 JavaScript 克隆并移出该元素,再配合 CSS 隐藏原始副本,从而在视觉上达成“穿透控制”的效果。
无法仅通过 css 实现 ` `)持续显示;必须借助 javascript 克隆并移出该元素,再配合 css 隐藏原始副本,从而在视觉上达成“穿透控制”的效果。 因此,若需让某个子元素(例如示例中的第二个 )始终可见,唯一可行的纯前端方案是修改 DOM 结构——将目标元素克隆一份并移至 以下为推荐实现方式: ✅ 关键说明: ⚠️ 重要提醒: 的子元素会被隐式隐藏(等效于 display: none),且该行为无法被常规 CSS(如 visibility: visible、position: absolute 或 display: block)覆盖。这是 HTML 规范定义的渲染约束,并非样式优先级问题。
<details><summary>Category</summary><p>A paragraph</p>
<p class="persistent">Another paragraph</p>
</details>
.persistent {
display: none; /* 隐藏原始副本 */
}
document.addEventListener('DOMContentLoaded', () => {
const details = document.querySelector('details');
const target = details.querySelector('.persistent');
if (target) {
const clone = target.cloneNode(true);
clone.classList.remove('persistent'); // 可选:清理样式类
details.after(clone);
}
});
严格意义上的“不操作 DOM 结构”在此场景下不可行。任何声称仅用 CSS 实现该效果的方案(如 all: unset、contain: layout 等)均无效——浏览器对











