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

如何仅用CSS隐藏指定标签前的文本内容 无需修改HTML或使用JS

有两种常见的纯CSS实现方案,可以根据你的浏览器兼容要求选择:

方案1:高兼容性(兼容所有现代浏览器)

如果可以确定前缀(数字+冒号+空格)的最大长度,用ch单位配合clip-path裁剪前缀区域即可,ch是数字0的宽度,对于数字、英文标点的宽度适配度很高:

[data-selector='suggested-tag'] {
  /* 假设前缀最长为5位数字+冒号+空格,共占用7ch宽度,按需调整数值即可 */
  clip-path: inset(0 0 0 7ch);
  /* 可选:如果裁剪后左边留白太多,加个负margin把内容拉回左侧 */
  margin-left: -7ch;
}

如果父级背景为纯色,也可以用绝对定位的伪元素覆盖前缀:

[data-selector='suggested-tag'] {
  position: relative;
  &::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    /* 同样按需调整宽度,和前缀宽度一致即可 */
    width: 7ch;
    /* 背景色和li的父容器背景色保持一致 */
    background: #fff;
  }
}

方案2:自适应前缀长度(无需固定前缀长度,兼容Chrome 125+、Firefox 131+)

用CSS锚点定位,自动获取<strong>标签的左侧位置作为覆盖区域的右边界,不管前缀多长都可以自动适配:

[data-selector='suggested-tag'] {
  position: relative;
  /* 定义锚点容器 */
  anchor-name: --tag-root;
  &::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    /* 右边界对齐到strong标签的左边界,刚好完全覆盖前缀 */
    right: anchor(--strong left);
    /* 背景色和li的父容器背景色保持一致 */
    background: #fff;
  }
  strong {
    /* 给strong定义锚点名 */
    anchor-name: --strong;
  }
}

补充说明

你之前的写法失效的核心原因是:Solo属于<li>的直接文本节点,没有被任何标签包裹,CSS目前没有提供直接选中独立文本节点的特性,所以无法单独给Solo设置字体大小,把父元素字体设为0的思路不可行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:39:02