CSS Tips:段落每行渐变色文本效果的实现方法

所属分类: 网页制作 / CSS 阅读数: 429
收藏 0 赞 0 分享

今天小编在Codepen上看到一个CSS写的效果。一个段落的每行文本是渐变效果。对于单行文本或单个词实现渐变填充效果并不是什么奇怪的事情,不过对于一个段落的每一行实现一个文本渐变填充的效果。估计还是会令很多人感到好奇。如果你是其中好奇的一员,请继续往下阅读,一探其中之究竟!

目标效果

今天的目标效果是实现下面这样的效果,或者说了解这种效果制作的小技巧:

640?wx_fmt=jpg&wxfrom=5&wx_lazy=1

看到上面的效果,我想很多人首先会想到的就是background-clip:text、color:transparent和linear-gradient来完成。那么事实是这样吗?

如何完成一个段落的每行文本渐变效果

了解CSS的同学都清楚,使用:

background-image: linear-gradient(to right, deeppink, dodgerblue);
-webkit-background-clip: text;
color: transparent;

就可以轻易的实现一个文本的渐变填充效果。比如下面这个示例:

640?wx_fmt=jpg

来做个小实验,如果文本不是一个词或单行而是整个段落,效果会是如何?

640?wx_fmt=jpg

效果似乎也是完美的。如果把渐变效果参数换一换,渐变效果是一个斜角:

background-image: linear-gradient(135deg, deeppink, dodgerblue);

看看两者的效果:

640?wx_fmt=jpg

仔细一看,两个效果还是有差异的。先来看看同一个大小容器(本示例中的p元素,其大小是765px * 165px),对于两种不同的渐变效果,先来看to right的填充效果:

640?wx_fmt=jpg

再来看135deg的填充效果:

640?wx_fmt=jpg

到这里了,你或许就知道前面的示例有何不同?而且也知道其中的原因是什么?如果我们想要各种渐变对于段落的每行填充效果都相同,应该怎么实现?在实现之前,先简单的总结一下:

在linear-gradient中使用to right或者to left,不管是单个词、单行文本或者多行文本,得到的文本填充效果都将一致。但对于其他渐变的角度参数,那么多行文本填充中的每行效果就将有差异。

回到正题?怎么实现多行而且不管任何填充角度都有相同效果?实现这个效果有一个关键属性:box-decoration-break。简单的说一下,box-decoration-break属性具有两个属性值:slice和clone,其对应的效果如下:

用于一个段落中,其效果如下:

640?wx_fmt=jpg

是不是离我们的目标越来越近了。那么把这个属性box-decoration-break:clone用于我们的示例:

background-image: linear-gradient(135deg, deeppink, dodgerblue);
background-clip: text;
-webkit-background-clip: text;
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
color: transparent;

效果如下:

640?wx_fmt=jpg

咱们来验证一下是不是符合我们预期想要的效果:

640?wx_fmt=gif

小技巧:box-decoration-break运用于行内元素,并且配上相应的line-height,让行与行之间有一定的间距。

回过头来,咱们看看,使用box-decoration-break是在行内元素和块元素之间的区别:

640?wx_fmt=jpg

是不是很完美。如果喜欢自己动手试试。

总结

这篇文章通过CSS的background-clip:text、color:transparent和box-decoration-break能实现每行文本渐变填充的效果,而且每行效果相同。而且不限于任何的渐变角度。
 

更多精彩内容其他人还在看

CSS3实现背景透明文字不透明的示例代码

这篇文章主要介绍了CSS3实现背景透明文字不透明的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

浅谈CSS中的尺寸单位

这篇文章主要介绍了浅谈CSS中的尺寸单位的相关资料,浏览器的兼容性越来越好,移动端基本是清一色的webkit,经常会用到css的不同尺寸/长度单位,这里做个整理。感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

CSS中有些属性的前面会加上“*”或“_”所代表的意思

这篇文章主要介绍了CSS中有些属性的前面会加上“*”或“_”所代表的意思,需要的朋友可以参考下
收藏 0 赞 0 分享

CSS 设置滚动条样式的实例代码

这篇文章主要介绍了CSS 设置滚动条样式的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

纯CSS制作各种各样的网页图标(三角形、暂停按钮、下载箭头、加号等)

这篇文章主要介绍了纯CSS制作各种各样的网页图标(三角形、暂停按钮、下载箭头、加号等)的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

纯css实现多级折叠菜单折叠树效果

这篇文章主要介绍了纯css实现多级折叠菜单折叠树效果,运用checkbox的checked值来判断下级栏目是否展开,通过css3选择器提供的checked伪类来实现此效果,感兴趣的朋友参考下吧
收藏 0 赞 0 分享

CSS Grid 网格布局全解析

这篇文章主要介绍了CSS Grid 网格布局全解析的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

css flex 弹性布局详解

这篇文章主要介绍了css flex 弹性布局详解的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

CSS3 二级导航菜单的制作的示例

这篇文章主要介绍了CSS3 二级导航的制作的示例的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

使用css禁用input、checkbox、select等html控件实现disable效果

这篇文章主要介绍了使用css禁用input、checkbox、select等html控件实现disable效果,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多