之前客户提的新需求中有文字渐变效果加文字描边效果,之前只用过单一的,但是组合起来就爆掉了,各种尝试找出了一种完美解决方案。
![24b7e754e3da7ccec22b71d7753cd01c.png](https://i-blog.csdnimg.cn/blog_migrate/f41d9418f3f6abff8a606e35bf472831.jpeg)
第一步,实现文字渐变
这里要用一种 CSS3新出的 属性: background-clip: text
background-clip 的定义:规定背景的绘制区域;简而言之,background-clip 就是规定background-color/background-image 背景(色/图)在盒模型里的作用范围...
那么使用了 background-clip: text 这个属性的意思是,以区块内的文字作为裁剪区域向外裁剪,文字的背景即为区块的背景,文字之外的区域都将被裁剪掉。
知道了这个特性之后,我们把背景设为图片背景或者渐变背景之后在只用这个属性就可以得到一个背景文字效果或者渐变文字效果!
eg :
背景图
![cccfc37d065d9e133be347917b4de27d.png](https://i-blog.csdnimg.cn/blog_migrate/02a821011ccd27a284029529b223452e.jpeg)
background-clip: text 转背景文字效果:
![f1be0f8e4fe375c5efa4ceb203350e19.png](https://i-blog.csdnimg.cn/blog_migrate/b8c67b629ca4856be594fcda7df96606.jpeg)
渐变效果:
![df4d50fe58de923e3ecc4b8cea8d8147.png](https://i-blog.csdnimg.cn/blog_migrate/b44c6bdd4250531f701e16a5d125d9e2.jpeg)
实现了 渐变文字之后我们就该实现文字外边框了:
第二步,实现文字描边
-webkit-text-stroke
CSS属性为文本字符指定了宽 和 颜色 . 它是-webkit-text-stroke-width 和-webkit-text-stroke-color 属性的缩写。
- text-stroke-width: 设置或检索对象中的文字的描边厚度。
- text-stroke-color:设置或检索对象中的文字的描边颜色。
虽然-webkit-text-stroke是webkit内核浏览器的私有属性,但是FireFox也支持这个样式,唯独IE浏览器不支持。所以在移动端是可以放心使用这个属性的。
![b7a7b6d6eb95976f91cf5707f11e5545.png](https://i-blog.csdnimg.cn/blog_migrate/e1560df74c0bf7f045f6f18c1e14d15d.jpeg)
如图所示,-webkit-text-stroke的第一个字段设置描边的宽度,第二个设置描边的颜色。
实现渐变文字描边
![c59632d57c739718664c3824d91c3459.png](https://i-blog.csdnimg.cn/blog_migrate/830379e2472c3260d96279948746ae34.jpeg)
两种属性配合使用便可。
ps: text-shadow, border 是无法做到渐变的同时进行描边的。。。