纯 css 实现:文字可换行的下划线、波浪线等效果
前言
今天领导开会时说努力工作会更快成熟,比如大冰块同学就比起刚进公司时就成熟了不少,我若有所思,上卫生间时照照镜子才发现,哦~原来我现在看上去比他们都老。
哈!以上先讲个段子开心一下,现在又到了夜深人静的时刻,开始我的更文大业~ 今天更点简单但是很有意思的 —— 文字下划线效果。这是一个不经常用,但是业务场景涉及到的话就是不可避免的功能,比如我们现在的某个业务,需要领导审批时做标记,标记的文字要有下划线或者波浪线的效果。
过程
虽然文字下划线有官方的属性 text-decoration
,但是我们优秀的设计小姐姐当然不会采用默认的样式,设计小姐姐总有自己的想法,并且构思总是不受技术的约束,设计小姐姐对我说默认的下划线样式太丑,无法修改,她要能粗细长短高低都随她心意变化的,我看了一下:
嗯~ 是有一点丑,主要是粗细长短高低不能随她心意变化,那就听设计小姐姐的意思重新写一个吧!
作为一名本着能简单就不复杂的前端摸鱼大师,我决定用border
边框去实现它,于是我 3 秒钟敲出了如下代码:
运行效果如下:
添加line-height: 10px;
之后效果如下:
我说,你看这个颜色可以变了,最重要的是粗细、长短、位置的高低,是不是都能随你心意变化了?
设计小姐姐若有所思的样子,说:这个文字换行之后什么效果呢?
换行之后的效果:
设计小姐姐撅起了嘴,这样子肯定不行嘛!上面文字的下划线怎么没了?
嗐~ 看来不能愉快的摸鱼了,难不成用box-shadow
来实现?不过box-shadow
实现的效果应该是和border-bottom
一样...这样思考起来,只能用 —— background: linear-gradient()
渐变背景属性来解决这个问题了。
还记得我之前一篇文章《纯css实现:多行文本框内的斑马条纹效果》吗?多行的文本背景色能实现,那么顺着这个思路说起来,我把文字对应的背景色改为透明的,文字下面的背景色改为 1px 指定颜色的,岂不是大功告成?
我真是个天才啊~
正当我构思完代码,准备花 10 秒钟敲出代码的时候,设计小姐姐又发话了:
哎呀,你怎么想这么久,这很难吗?我要是会敲代码,早就搞完啦!这样吧,我不仅要直线的下划线,还要曲线的下划线,并且下划线的样式不能是纯色的......巴拉巴拉......
我面带微笑的看着她,任凭她舌灿莲花滔滔不绝,殊不知我早已想好了另一个对策 —— background
背景属性中的 background-image
!
对 css 渐变背景感兴趣的可以看我之前这篇文章:《如何把css渐变背景玩出花样来》~
当设计小姐姐终于说完了要求,我说小意思,这都能实现,哪怕你要求文本下面是贴画的线条呢,我也能实现,实现的基础很简单,把你要的样式给我 —— 切图~
最终我花费了 20 秒钟完成了设计小姐姐的要求,代码如下:
实现效果如下:
大功告成,继续我的摸鱼大业~
后记
希望大冰块今天分享的内容能对你有所帮助,下划线这个场景的确用到的地方不多,不过前端生涯基本都会有类似的需求,虽然实现起来很简单,但是一时半会可能想不到这个思路,所以有时间的话,也可以自己动手写一遍,避免眼高手低,同时理一下用到的 css 属性哦~
今天是我坚持日更的第二十四天,今天还是加班的一天,回家之后马上十点,还是坚持想题材更了这篇文章,写的过程还蛮顺利的~
每天输出一点点,进步一点点。有志者,事竟成。大家一起加油呀~
如果本文对你有帮助,别再是悄悄收藏啦!比如点个赞呀,关注大冰块呀,一起和大冰块学习更多好玩的技术博客吧~
版权声明: 本文为 InfoQ 作者【南极一块修炼千年的大冰块】的原创文章。
原文链接:【http://xie.infoq.cn/article/7516cecd127457786ae3ca9f0】。文章转载请联系作者。
评论