插件窝 干货文章 如何用CSS实现带间距的多行文本下划线效果?

如何用CSS实现带间距的多行文本下划线效果?

下划线 多行 background 文本 472    来源:    2025-03-26

实现带间距的多行文本下划线效果

要实现带间距的多行文本下划线效果,有几种CSS方法可以选择。下面我将介绍最常用的几种解决方案:

方法1:使用背景渐变(background-image)

.underlined {
  background-image: linear-gradient(to right, currentColor 0%, currentColor 100%);
  background-repeat: repeat-x;
  background-position: 0 100%;
  background-size: 100% 1px;
  padding-bottom: 3px; /* 控制下划线与文本的间距 */
}

方法2:使用伪元素(::after)

.underlined {
  position: relative;
  display: inline;
}

.underlined::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px; /* 控制下划线与文本的间距 */
  height: 1px;
  background-color: currentColor;
}

方法3:使用文本装饰(text-decoration)配合box-shadow

.underlined {
  text-decoration: underline;
  text-decoration-skip-ink: none; /* 确保下划线连贯 */
  text-underline-offset: 3px; /* 控制下划线与文本的间距 */
  text-decoration-thickness: 1px;
}

多行文本的特殊处理

对于多行文本,上述方法可能需要额外调整:

.multiline-underlined {
  display: inline;
  background-image: linear-gradient(to right, currentColor 0%, currentColor 100%);
  background-repeat: repeat-x;
  background-position: 0 100%;
  background-size: 100% 1px;
  padding-bottom: 3px;
  box-shadow: 0px 1px 0px 0px currentColor; /* 为换行处添加下划线 */
}

注意事项

  1. 这些方法中,background-image方法通常兼容性最好
  2. 使用currentColor可以让下划线颜色自动匹配文本颜色
  3. 调整padding-bottombottom值可以控制下划线与文本的间距
  4. 对于多行文本,可能需要结合box-shadow来确保每行都有下划线

选择哪种方法取决于你的具体需求和浏览器兼容性要求。现代浏览器中,方法3(text-decoration)是最语义化的选择。