巧用 CSS linear-gradient 实现多种下划线文字特效(纯 CSS 无需额外标签)

在日常网页设计中,给文字加下划线是常见的样式需求。

很多人第一时间想到 text-decoration: underline,但这个属性的自定义空间有限,想要实现渐变线、虚线、斜线下划线 等更有设计感的效果,就需要一点小技巧------使用 backgroundlinear-gradient()


✨ 一、基础下划线实现

下面这段代码展示了如何使用 linear-gradient 模拟传统的下划线:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        body {
            font: 250%/1.6 Baskerville, Palatino, serif;
        }

        a {
            background: linear-gradient(gray, gray) no-repeat;
            background-size: 100% 1px;
            background-position: 0 1.02em;
            text-shadow: .05em 0 white, -.05em 0 white;
        }
    </style>
</head>
<body>
    <p>"The only way to <a>get rid of a temptation</a> is to <a>yield</a> to it."</p>
</body>
</html>

🔍 效果说明:

  • background: linear-gradient(gray, gray) → 定义一条灰色的线;

  • background-size: 100% 1px → 控制线的高度为 1px;

  • background-position: 0 1.02em → 将线定位到文字的下方;

  • text-shadow → 避免文字与下划线重叠时影响阅读。

这段代码能在不使用 border-bottom 的情况下实现干净利落的下划线,并且不会破坏文字间距。


🧩 二、使用虚线样式的下划线

通过调整背景图的重复方式和透明间隔,我们可以轻松得到虚线效果👇

css 复制代码
p:nth-child(2) a {
    background: linear-gradient(90deg, gray 66%, transparent 0) repeat-x;
    background-size: .2em 2px;
    background-position: 0 1em;
}

💡 原理解析:

  • 使用 linear-gradient(90deg, gray 66%, transparent 0) 让每一小段线条中只有 66% 是灰色;

  • 通过 background-repeat: repeat-xbackground-size 让虚线连续平铺;

  • 效果类似 border-bottom: 1px dashed gray,但更灵活、支持渐变和动画。

🔗 效果展示:

这一句文字中每个 <a> 链接都会带有精致的灰色虚线下划线。


💥 三、斜线下划线(高级视觉特效)

下面是第二段代码的实现,它使用两个对角线方向的 linear-gradient 叠加,打造红色斜纹下划线

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        body {
            font: 250%/1.6 Baskerville, Palatino, serif;
        }

        a {
            background: 
                linear-gradient(-45deg, transparent 40%, red 0, red 60%, transparent 0) 0 1em,
                linear-gradient(45deg, transparent 40%, red 0, red 60%, transparent 0) .1em 1em;
            background-repeat: repeat-x;
            background-size: .2em .1em;
            text-shadow: .05em 0 white, -.05em 0 white;
        }
    </style>
</head>
<body>
    <p>"The only way to <a>get rid of a temptation</a> is to <a>yield</a> to it."</p>
</body>
</html>

🎨 原理解析:

  • 使用两条倾斜的渐变:

    • 第一条 -45deg 方向;

    • 第二条 45deg 方向;

  • 它们组合形成一个 "X" 形的斜线下划线;

  • 通过 repeat-x 实现横向连续平铺;

  • background-size 控制线条密度,.2em .1em 可以根据字体大小微调。

📸 视觉效果:

每个链接文字下方都会有一条红色斜纹线,看起来像织物纹理,非常有设计感。


🧠 四、拓展思路:让下划线更"聪明"

你可以继续利用同样的 linear-gradient 思路,做出以下效果:

  • 渐变色下划线(linear-gradient(to right, red, blue));

  • 波浪线下划线(结合 repeating-linear-gradient);

  • 动态动画下划线(用 background-position 做滑动特效)。

例如👇

css 复制代码
a:hover {
    background: linear-gradient(to right, #ff0080, #ff8c00) no-repeat;
    background-size: 100% 3px;
    background-position: 0 1.05em;
    transition: background-size 0.3s ease;
}

🏁 五、总结

类型 实现方式 优点
普通下划线 linear-gradient(gray, gray) 可控颜色与位置
虚线下划线 linear-gradient(90deg, gray 66%, transparent 0) 轻量无 border
斜线下划线 两个倾斜的 gradient 叠加 独特视觉效果
动态渐变线 to right + transition 适合 hover 动效

传统的 text-decoration 只能满足最基本的下划线需求,而利用 CSS 的 backgroundlinear-gradient,我们可以让文本的表现力提升到新的层次。

这种纯 CSS 技巧不仅无依赖、性能高、兼容性好,还可以在现代浏览器中实现各种创意文字特效,是前端开发者的必备技能之一。


👉 推荐阅读:

相关推荐
倚肆4 小时前
CSS ::before 和 ::after 伪元素详解
前端·css
泷羽Sec-静安19 小时前
Less-1 GET-Error based-Single quotes-String GET-基于错误-单引号-字符串
前端·css·网络·sql·安全·web安全·less
一只学java的小汉堡1 天前
HTML 01入门:从概念到开发环境搭建与页面头部配置
前端·css·html
W.Y.B.G1 天前
css3 学习笔记
笔记·学习·css3·1024程序员节
九皇叔叔1 天前
HTML与CSS基础入门:从语法到页面结构全解析
css·html·1024程序员节
_殊途1 天前
HTML-CSS项目练习
前端·css·html
β添砖java1 天前
vivo响应式官网
前端·css·html·1024程序员节
jingling5552 天前
CSS进阶 | 不用一行JS!用纯CSS打造会动的现代化单页应用(3D翻转卡片)
前端·javascript·css
Gee Explorer2 天前
第一篇使用HTML写一个随机点名网页
css·html5·1024程序员节