CSS实现文字渐变,有下面两种方法:

1. background 属性

.text-gradient {

background-image: linear-gradient(to right, orange, purple);

-webkit-background-clip: text;

color: transparent;

font-size: 30px;

}

文字渐变

效果如下:

3a5bbfbf5957

实现原理:

background-image 属性为该文字区域设置一个渐变的背景色

color:transparent把该区域的文字颜色设置为透明

background-clip:text将背景裁剪成文字的前景色

需要注意的是,background-clip:text 还只是一个实验中的属性,Chrome、FireFox等多数浏览器较新的版本已经实现了,但是IE不行。

2. mask 属性

.text-gradient {

position: relative;

color: blue;

font-size: 30px;

}

.text-gradient:before {

content: attr(text);

position: absolute;

z-index: 10;

color: orange;

-webkit-mask: linear-gradient(to right, transparent, orange);

}

文字渐变

效果如下:

3a5bbfbf5957

实现原理:

.text-gradient:before生成一个新元素,content:attr(text)使新元素内容与原文本内容相同,color:orange将新元素文本设置为橙色

-webkit-mask: linear-gradient(to right, transparent, orange)为新元素添加了一个从左到右,从透明到橙色的渐变遮罩,before元素中与mask的transparent的重叠部分也变成了透明

before新元素与原div蓝色文本叠加,形成了从左至右从蓝色到橙色的渐变效果

mask属性在Chrome、FireFox等浏览器的较新版本中得到了支持,IE下不支持。

IE不支持CSS3属性,只能通过别的方式来实现:IE 下文字渐变色实现

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐