Rumah  >  Artikel  >  hujung hadapan web  >  详解纯CSS实现文字渐变色的两种方式

详解纯CSS实现文字渐变色的两种方式

青灯夜游
青灯夜游ke hadapan
2021-04-23 19:19:403744semak imbas

本篇文章给大家介绍使用纯CSS实现文字渐变色的两种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

详解纯CSS实现文字渐变色的两种方式

说明


这次的重点就在于两个属性,     

  • background 属性   

  • mask 属性     

这两个属性分别是两种实现方式的关键。

方式一


效果图

1.png

代码

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <style>
 
    span {
        background: linear-gradient(to right, red, blue);
        -webkit-background-clip: text;
        color: transparent;
    }
    </style>
</head>

<body>
        <span>前端简单说</span>
</body>
</html>

代码不多,我们来看看,  
background: linear-gradient(to right, red, blue); 这行是给背景设置为渐变色,这里注意一点,这样是简写了,其实是给background-image 设置为渐变色,不是 background-color ,是背景图 取值为渐变色,如果不知道渐变色,直接到这里看,  
CSS3 渐变(Gradients)

-webkit-background-clip: text; 这行就要说到,background-clip 属性了 ,我们来看看 W3Cschool 上的说明

background-clip 属性 规定背景的绘制区域

语法  
background-clip: border-box|padding-box|content-box;    

2.png

上面没有说取值 text 的情况,看到前面的前缀,大家应该也能想到,它的兼容性问题了,目前还不是能所有浏览器都支持。

取值为text的意思,就是以区块内的文字作为裁剪区域向外裁剪,文字的背景即为区块的背景,文字之外的区域都将被裁剪掉。

所以,我们最后写color: transparent;  让文字为透明色,就是让后面背景色显示出来。

方式二


效果图      

3.png

代码

ffd43448117c1013fbeeed3f564491ad
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e
03fc48c6e8e131d94ca98b8e034341f4

46d5fe1c7617e3914f214aaf043f4ccf
    h1{
        position: relative;
        color: yellow;
    }
    h1:before{
        content: attr(text);
        position: absolute;
        z-index: 10;
        color:pink;
        -webkit-mask:linear-gradient(to left, red, transparent );
    }
531ac245ce3e4fe3d50054a55f265927
531ac245ce3e4fe3d50054a55f265927
9c3bca370b5104690d9ef395f2c5f8d1

6c04bd5ca3fcae76e30b72ad730ca86d
    f09ef8ab68d0f51d238257862a325b65前端简单说473f0a7621bec819994bb5020d29372a
36cc49f0c466276486e50c850b7e4956

73a6ac4ed44ffec12cee46588e518a5e

代码也不多,我们简单说一下,

:before 选择器向选定的元素 前 插入内容。  
使用content 属性来指定要插入的内容。

content取值 attr 就是用来获取属性值的,content:attr(属性名);

content: attr(text); 能获取到元素的 text 属性,这里的这个text属性是自己自定义的一个属性,你也可以在元素中加一个 tt 属性,像这样  
63274b8e1fbb3c2313fde9981381fd02前端简单说473f0a7621bec819994bb5020d29372a  
然后content属性 这样写,content: attr(tt);   同样是可以起作用的。

好的我们继续说第二种方式的重点,mask属性,因为之前已经写过一篇介绍mask属性的文章了,
简单说 CSS中的mask—好好利用mask-image  
这里就不很详细的介绍了,想详细了解的朋友可以看看上面这篇文章,一定会对你有所帮助的。

mask属性简单说,就是能让元素的某一部分显示或隐藏。
我们看张图就能明白,第二种方式实现的原理了

4.png

总结

这次说的这两种方式,应该算是很容易理解了,希望对大家有点帮助。

更多编程相关知识,可访问:编程入门!!

Atas ialah kandungan terperinci 详解纯CSS实现文字渐变色的两种方式. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:segmentfault.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:css文本框如何去掉边框Artikel seterusnya:css如何让div隐藏