css如何实现文字不同颜色
这篇文章主要介绍了css如何实现文字不同颜色的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css如何实现文字不同颜色文章都会有所收获,下面我们一起来看看吧。
两种方法:1、用background-clip,语法“文字元素{background-image:linear-gradient(..);background-clip:text;color:transparent;}”。2、用mask,语法“文字元素{color:颜色值1;}文字元素:before{mask:linear-gradient(..);color:颜色值2;}”。
本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。
在CSS中,可以通过给文字元素添加渐变效果实现文字不同颜色。下面介绍2种文字渐变效果的实现方法。
方式一:linear-gradient()+background-clip
CSS 中并没有直接的属性来设置文字渐变,通常文字只能是纯色。不过可以通过背景裁剪 background-clip让背景色在文本区域显示出来,看着就像是文字有了渐变。
效果图
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.text {
background-image: linear-gradient(to right, red, blue);
background-clip: text;
-webkit-background-clip: text;
color: transparent; /*需要文字透明*/
}
</style>
</head>
<body>
<h2 class="text">为你定制 发现精彩</h2>
</body>
</html>
代码不多,我们来看看:
background: linear-gradient(to right, red, blue);
这行是给背景设置为渐变色,这里注意一点,这样是简写了,其实是给background-image
设置为渐变色,不是 background-color
,是背景图 取值为渐变色。-webkit-background-clip: text;
这行就要说到,background-clip 属性了 :background-clip 属性 规定背景的绘制区域
语法
background-clip: border-box|padding-box|content-box;
上面没有说取值 text 的情况,看到前面的前缀,大家应该也能想到,它的兼容性问题了,目前还不是能所有浏览器都支持。
取值为text的意思,就是以区块内的文字作为裁剪区域向外裁剪,文字的背景即为区块的背景,文字之外的区域都将被裁剪掉。
所以,我们最后写
color: transparent;
让文字为透明色,就是让后面背景色显示出来。方式二:linear-gradient()+mask
效果图
代码
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<style type="text/css">
h2{
position: relative;
color: yellow;
}
h2:before{
content: attr(text);
position: absolute;
z-index: 10;
color:pink;
-webkit-mask:linear-gradient(to left, red, transparent );
}
</style>
</style>
</head>
<body>
<h2 text="前端简单说">前端简单说</h2>
</body>
</html>
代码也不多,我们简单说一下,
:before 选择器向选定的元素 前 插入内容。
使用content 属性来指定要插入的内容。
content取值 attr 就是用来获取属性值的,content:attr(属性名);
content: attr(text);
能获取到元素的 text 属性,这里的这个text属性是自己自定义的一个属性,你也可以在元素中加一个 tt 属性,像这样 <h2 tt="前端简单说">前端简单说</h2>
然后content属性 这样写,
content: attr(tt);
同样是可以起作用的。好的我们继续说第二种方式的重点,mask属性
mask属性简单说,就是能让元素的某一部分显示或隐藏。
我们看张图就能明白,第二种方式实现的原理了
相关文章