公司的一个内部导航网站的标题使用了流光文字的效果,感觉还不错.百度搜了一下大概知道了原理. 具体代码如下:
1 | #text { |
只需要把元素的 text 或者 text-fill-color 设置为 transparent ,然后设置元素的背景为渐变色,background-size 宽度设为 200%,扩大背景,设置-webkit-background-clip 为 text,背景色只覆盖文字 .最后使用 animation 动画变更 background-position 的位置即可. 效果如下图:
(渐变颜色差距不是很大,所以效果不是很明显.比较明显的是 这个 ) .借这个机会也学习了一波 background 的知识:
background
background 是一个简写属性,可以定义相关的多个属性,比如:
1 | .test { |
等于
1 | .test { |
注意:对于 background 属性,所有没有被指定的值都会被设定为它们的初始值.
1 | .test { |
background-attachment
background-attachment 决定了背景图片在出现滚动条的情况下应该如何运动.说起来比较抽象,具体参看MDN上的例子: https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-attachment
background-size
background-size 设置背景图片大小.图片可以保有其原有的尺寸,或者拉伸到新的尺寸,或者在保持原有比例的同时缩放到元素的可用空间的尺寸.
1 | .test { |
background-repeat
这个属性用于控制当容器的长宽大于背景的长宽的时候,是否要重复显示.默认是repeat,即可以重复显示.一般使用的是 no-repeat
background-position
background-position 为每一个背景图片设置初始位置.它的属性值可以是关键字,百分比或者像素.
1 | .test { |
background-clip
background-clip 设置元素的背景(背景图片或颜色)是否延伸到边框、内边距盒子、内容盒子下面.
1 | .test { |
background-image
background-image 可以为一个元素设置一个或者多个背景图像.图像以 Z 方向堆叠的方式进行.先指定的图像会在之后指定的图像上绘制.
1 | .test { |
linear-gradient
linear-gradient() 函数用于创建一个线性渐变的”图像”.
1 | .test { |
参考链接:
css3 text-fill-color 简介 - https://www.cnblogs.com/jiajia123/p/6493011.html
完整代码 -
MDN-background - https://developer.mozilla.org/zh-CN/docs/Web/CSS/background#%3Cposition%3E
奇妙的-webkit-background-clip:text - https://github.com/chokcoco/iCSS/issues/14