写点什么

纯 css 实现:文字可换行的下划线、波浪线等效果

  • 2022 年 7 月 27 日
  • 本文字数:1764 字

    阅读完需:约 6 分钟

前言

今天领导开会时说努力工作会更快成熟,比如大冰块同学就比起刚进公司时就成熟了不少,我若有所思,上卫生间时照照镜子才发现,哦~原来我现在看上去比他们都老。


哈!以上先讲个段子开心一下,现在又到了夜深人静的时刻,开始我的更文大业~ 今天更点简单但是很有意思的 —— 文字下划线效果。这是一个不经常用,但是业务场景涉及到的话就是不可避免的功能,比如我们现在的某个业务,需要领导审批时做标记,标记的文字要有下划线或者波浪线的效果。

过程

虽然文字下划线有官方的属性 text-decoration,但是我们优秀的设计小姐姐当然不会采用默认的样式,设计小姐姐总有自己的想法,并且构思总是不受技术的约束,设计小姐姐对我说默认的下划线样式太丑,无法修改,她要能粗细长短高低都随她心意变化的,我看了一下:



嗯~ 是有一点丑,主要是粗细长短高低不能随她心意变化,那就听设计小姐姐的意思重新写一个吧!


作为一名本着能简单就不复杂的前端摸鱼大师,我决定用border边框去实现它,于是我 3 秒钟敲出了如下代码:


    <style>        p{            display: inline-block;            border-bottom: 2px solid aquamarine;        }    </style>
<p>南极大冰块</p>
复制代码


运行效果如下:



添加line-height: 10px;之后效果如下:



我说,你看这个颜色可以变了,最重要的是粗细、长短、位置的高低,是不是都能随你心意变化了?


设计小姐姐若有所思的样子,说:这个文字换行之后什么效果呢?


换行之后的效果:



设计小姐姐撅起了嘴,这样子肯定不行嘛!上面文字的下划线怎么没了?


嗐~ 看来不能愉快的摸鱼了,难不成用box-shadow来实现?不过box-shadow实现的效果应该是和border-bottom一样...这样思考起来,只能用 —— background: linear-gradient()渐变背景属性来解决这个问题了。


还记得我之前一篇文章《纯css实现:多行文本框内的斑马条纹效果》吗?多行的文本背景色能实现,那么顺着这个思路说起来,我把文字对应的背景色改为透明的,文字下面的背景色改为 1px 指定颜色的,岂不是大功告成?


我真是个天才啊~


正当我构思完代码,准备花 10 秒钟敲出代码的时候,设计小姐姐又发话了:


哎呀,你怎么想这么久,这很难吗?我要是会敲代码,早就搞完啦!这样吧,我不仅要直线的下划线,还要曲线的下划线,并且下划线的样式不能是纯色的......巴拉巴拉......


我面带微笑的看着她,任凭她舌灿莲花滔滔不绝,殊不知我早已想好了另一个对策 —— background背景属性中的 background-image


对 css 渐变背景感兴趣的可以看我之前这篇文章:《如何把css渐变背景玩出花样来》~


当设计小姐姐终于说完了要求,我说小意思,这都能实现,哪怕你要求文本下面是贴画的线条呢,我也能实现,实现的基础很简单,把你要的样式给我 —— 切图~


最终我花费了 20 秒钟完成了设计小姐姐的要求,代码如下:


    <style>        .straight-line{            background-image: url('./straight.png'); /* 直线宽5px的图片 */            background-position: 0 100%;            background-repeat: repeat-x;            background-size: 100% 3px;            padding-bottom: 2px;        }        .wavy-line{            background-image: url('./wavy.png'); /* 波浪线宽2px的图片 */            background-size: 9px 4px;            background-position: 0 100%;            background-repeat: repeat-x;            padding-bottom: 3px;        }    </style>
<span class="straight-line">我希望南极大冰块下划线是直线</span> <span class="wavy-line">我希望南极大冰块下划线是波浪线</span>
复制代码


实现效果如下:



大功告成,继续我的摸鱼大业~

后记

希望大冰块今天分享的内容能对你有所帮助,下划线这个场景的确用到的地方不多,不过前端生涯基本都会有类似的需求,虽然实现起来很简单,但是一时半会可能想不到这个思路,所以有时间的话,也可以自己动手写一遍,避免眼高手低,同时理一下用到的 css 属性哦~


今天是我坚持日更的第二十四天,今天还是加班的一天,回家之后马上十点,还是坚持想题材更了这篇文章,写的过程还蛮顺利的~


每天输出一点点,进步一点点。有志者,事竟成。大家一起加油呀~


如果本文对你有帮助,别再是悄悄收藏啦!比如点个赞呀,关注大冰块呀,一起和大冰块学习更多好玩的技术博客吧~

发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2022.07.01 加入

还未添加个人简介

评论

发布
暂无评论
纯css实现:文字可换行的下划线、波浪线等效果_7月月更_南极一块修炼千年的大冰块_InfoQ写作社区