「这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」
前言
该文作为《文字效果到底能玩出多少花样》的第五篇文章,带大家实现 渐变文字和文字倒影 。
基础知识
今天因为要实现两种效果,预备知识有点多,分别是 background-clip 属性、 -webkit-box-reflect 属性。
- background-clip: 设置元素的背景(背景图片或颜色)是否延伸到边框、内边距盒子、内容盒子下面。有四个属性值,下面来一一介绍一下:
border-box: 背景延伸至边框外沿(但是在边框下层)padding-box: 背景延伸至内边距(padding)外沿。不会绘制到边框处content-box: 背景被裁剪至内容区(content box)外沿text: 背景被裁剪成文字的前景色
- -webkit-box-reflect
-webkit-box-reflect: [ above | below | right | left ]? <length>? <image>?
- 方位: 设置倒影的朝向
- 偏移大小: 设置倒影偏离初始元素的距离
- 遮罩图片: 给元素倒影添加遮罩层,效果语法类似于 background-image 属性。
渐变文字
由于 color 属性不能设置渐变色,所以渐变文字的实现并不简单,但众多大佬也通过探索也发掘了好多种实现方案。例如使用 canvas 的 CanvasRenderingContext2D.createLinearGradient()方法实现;使用 background-clip: text 配合 background 来实现;-webkit-mask 配合 attr 来实现等。
本文主要使用 background-clip: text 配合 background 来实现。
- background 设置渐变色
background: linear-gradient(90deg, #7e40ee, #00f, #63d9ee);
2. background-clip: text 裁剪渐变
-webkit-background-clip: text;
background-clip: text;
- 文字 color 设置为透明
color: transparent;
渐变文字效果就实现了。
文字倒影效果
chrome 浏览器提供了 -webkit-box-reflect 属性,通过这个属性可以轻松实现 chrome 下的倒影效果。
color: rgb(237, 125, 49);
-webkit-box-reflect: below -2px -webkit-gradient(
linear,
left top,
left bottom,
from(rgba(0, 0, 0, 0)),
to(rgba(255, 255, 255, 0.2))
);
注意: 我实验了一下,必须在
border box元素上定义该属性,span上设置无效。并且当前属性在 Firefox 和 Opera 上可能不兼容。
往期精彩文章
- 牛客最新前端JS笔试百题
- 牛客最新前端面经面试题汇总(含解析)
- 抓取牛客最新前端面试题五百道 数据分析JS面试热点
- 给VSCode和网站领养喵咪 一起快乐撸猫
- 原生JavaScript灵魂拷问(一),你能答上多少?
- JavaScript之彻底理解原型与原型链
- JavaScript之彻底理解EventLoop
- 《2w字大章 38道面试题》彻底理清JS中this指向问题
- 参考博客: Staggered Bouncing 3D Loading
复制代码
后语
伙伴们,如果大家感觉本文对你有一些帮助,给阿包点一个赞👍或者关注➕都是对我最大的支持。
另外如果本文章有问题,或者对文章其中一部分不理解,都可以评论区回复我,我们来一起讨论,共同学习,一起进步!
如果感觉评论区说不明白,也可以添加我的微信(li444186976)或者 qq(3315161861) 详细交流,名字都是战场小包。