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

如何隐藏<section>内的独立文本而保留可见<div>内容?

解决方法

你遇到的问题根源在于:CSS选择器只能选中元素节点,没法直接选中<section>里的独立文本节点(就是那段“Text I want hidden”),所以section :not(div)只能隐藏<a>这类元素,对文本节点无效。

下面给你两种可行的CSS方案:

方案一:通过字号控制(推荐)

这种方法简单直接,通过父元素的字号隐藏文本,再给需要显示的div恢复字号:

section {
  font-size: 0; /* 让所有文本内容不可见 */
}
section div {
  font-size: 16px; /* 恢复div的正常字号,可按需调整大小 */
}
section a {
  display: none; /* 隐藏不需要的a标签 */
}

方案二:通过文本颜色与元素隐藏(保留文本占位)

如果你需要保留文本原来的占位空间,只是让内容不可见,可以用这种方法:

section {
  color: transparent; /* 让所有文本变透明 */
}
section div {
  color: #000; /* 恢复div的文本颜色 */
}
section a {
  display: none; /* 隐藏a标签 */
}

额外:JavaScript方案(允许用JS时)

如果可以使用JavaScript,能精准选中并移除目标节点:

const section = document.querySelector('section');
// 遍历section的所有子节点,倒序删除避免索引混乱
for (let i = section.childNodes.length - 1; i >= 0; i--) {
  const node = section.childNodes[i];
  // 只保留div元素,移除其他节点(包括文本节点和a标签)
  if (node.nodeType !== Node.ELEMENT_NODE || node.tagName !== 'DIV') {
    section.removeChild(node);
  }
}

内容的提问来源于stack exchange,提问作者Talk Nerdy To Me

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:35:02