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

如何实现文本换行后锚点标签下划线完整延续显示?

问题描述

补充说明

我的问题与标记为重复的问题完全不同。我要实现的是下划线延续至文本末尾,无论文本分为一行、两行还是三行。

我需要在锚点标签(a标签)下方显示下划线,已尝试以下代码,但遇到问题:我给ul标签设置了300px宽度,锚点文本被分成两行,但下划线未覆盖换行后的文本。

当前输出

当前输出效果

预期输出

我需要让“of mentoring”下方也显示下划线

尝试的代码

CSS代码

ul {
  width: 300px
}

ul,
li {
  list-style: none;
}

a {
  text-decoration: none;
}

ul li a {
  position: relative;
  font-size: 28px;
  line-height: 32px;
  color: #000;
}

ul li a:after {
  content: "";
  background-color: red;
  width: 100%;
  height: 10px;
  display: block;
  position: absolute;
  bottom: 5px;
  z-index: -1;
}

HTML代码

<ul>
  <li>
    <a href="">The role of mentoring</a>
  </li>

  <li>
    <a href="">Research backed benefits of mentoring</a>
  </li>

</ul>
解决方案

把原本用绝对定位伪元素实现下划线的方式,换成背景渐变+盒装饰断裂克隆的方案,这样能让下划线跟随每行文本延伸到末尾。

修改后的CSS代码如下:

ul {
  width: 300px
}

ul,
li {
  list-style: none;
}

a {
  text-decoration: none;
}

ul li a {
  position: relative;
  font-size: 28px;
  line-height: 32px;
  color: #000;
  /* 核心样式 */
  background: linear-gradient(red, red) bottom left / 100% 10px no-repeat;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

原理说明

  • background: linear-gradient(red, red) bottom left / 100% 10px no-repeat:用红色渐变模拟下划线,设置在文本底部,宽度为每行文本的100%,高度10px。
  • box-decoration-break: clone:让背景这类装饰在元素换行时,跟随每行文本克隆显示,而非仅显示在元素整体的底部;添加-webkit前缀兼容webkit内核浏览器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:02:36