<!--
* @Descripttion:
* @Author: voanit
* @Date: 2022-12-02 21:21:24
* @LastEditors: voanit
* @LastEditTime: 2022-12-02 21:45:57
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.gradient-text {
width: 800px;
font-size: 140px;
color: transparent;
background: -webkit-linear-gradient(360deg,red, #32c5ff 25%, #b620e0 50%, #f7b500 75%, #20e050 100%);
background-clip: text;
-webkit-background-clip: text;
/* -webkit-text-fill-color: transparent; */
/* background-size: auto; */
}
.gradient-text {
animation: gradientText 30s infinite linear;
-webkit-animation: gradientText 300s infinite linear;
}
@keyframes gradientText {
0% {
background-position: 0;
}
100% {
background-position: 8000px;
}}
</style>
</head>
<body>
<div class="gradient-text">web~前端</div>
</body>
</html>前篇章已经介绍过background-color背景色、background-image背景图片的使用,在css 中还可以使用渐变作为背景,其控制和性能方面比使用实际图像文件更好。如果你还不了解background(背景属性),可以先看看这篇文章:前端入门——css颜色和背景。
CSS 渐变通常是一种颜色淡入到另一种颜色,CSS 允许您控制渐变的方方面面,从方向、形状再到颜色以及它们如何从一种颜色过渡到另一种颜色。实际上,渐变分为三种类型:
下面是基本语法:
/* 线性渐变 */
background-image: linear-gradient(#ff8a00, #e52e71);
background-image: linear-gradient(to right, violet, darkred, purple);
background-image: linear-gradient(40deg, rgb(255 0 0) 60%, orange);
/* 径向渐变 */
background-image: radial-gradient(#ff8a00, #e52e71);
background-image: radial-gradient(circle at top right, #ff8a00, red, #e52e71);
/*圆锥渐变 */
background-image: conic-gradient(#ff8a00, #e52e71);
background-image: conic-gradient(red 50deg, yellow 100deg, lime 200deg, aqua, blue, magenta, red);效果如下:
下面是重复渐变:
/*重复渐变 */
background: repeating-linear-gradient(red, yellow 10%, green 15%);
background: repeating-radial-gradient(red, yellow 10%, green 15%);线性重复渐变
径向重复渐变
所有的 CSS 渐变类型都是一个颜色范围。CSS 渐变产生的颜色可以随位置不断变化,从而产生平滑的颜色过渡。也可以创建纯色带和两种颜色之间的硬过渡。以下内容适用于所有渐变函数:
无需局限于使用两种颜色,你想使用多少种颜色都可以! 默认情况下,所设置的颜色会均匀分布在渐变路径中。
如下示例:
你可以通过给每个颜色设置 0,1% 或者 2% 或者其他的绝对数值来调整它们的位置。如果你将位置设置为百分数, 0% 表示起始点,而 100% 表示终点,但是如果需要的话你也可以设置这个范围之外的其他值来达到你想要的效果。如果有些位置你没有明确设置,那么它将会被自动计算,第一种颜色会在 0% 处停止,而最后一种颜色是 100%,至于其他颜色则是在它邻近的两种颜色的中间停止。
如下示例:
要在两种颜色之间创建一条硬线,即创建一个条纹而不是逐渐过渡,可以将相邻的颜色停止设置为相同的位置。在此示例中,两种颜色在 50% 标记处共享一个颜色停止点,即渐变得一半:
默认情况下,渐变会平滑地从一种颜色过渡到另一种颜色。你可以通过设置一个值来将渐变的中心点移动到指定位置。 在如下示例中,我们将渐变的中心点由 50% 设为 10%。
以上内容,大概介绍了css 渐变所包含的知识点,下面将会分多篇文章来介绍每种渐变的使用方法,你可以关注我,继续学习其它渐变知识。
其它相关文章:
参考资料:
https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Images/Using_CSS_gradients
https://css-tricks.com/a-complete-guide-to-css-gradients/
:测试浏览器版本号——chrome 75.0.3770.80;opera 60.0.3255.109;firefox 67.0;ie 11。
之前《CSS之图片特殊用法》有讲过不同用途的image属性,渐变作为image的属性值参与以上用途。下面主要讲一讲渐变的实际用法。
1 使用direction控制渐变方向
语法:
background-image: linear-gradient(to direction, color-1 percentage-1/length-1,color-2 percentage-2/length-2,...);
解释说明:
以上图为例,五种颜色将空间均分成四等份,其中五条分割线为各自颜色的中心线,以此为基准颜色渐变。
下面给出几个具体案例
/*方向缺省,百分比缺省,渐变从上到下,五种颜色按规则渐变*/ background-image: linear-gradient(red, yellow,blue,orange,black); /*从左到右,按照百分比渐变*/ background-image: linear-gradient(to right, red 10%, yellow 30%,blue 70%,orange 90%,black); /*从左上到右下,按照具体像素渐变*/ background-image: linear-gradient(to bottom right, red 10px, yellow 150px,blue 170px,orange 200px,black);
2 使用angle控制渐变方向
语法:
background-image: linear-gradient(angle, color-1 percentage-1/length-1,color-2 percentage-2/length-2,...);
与上述(使用direction控制渐变方向)渐变方式唯一的区别就是该方法是使用角度(angle)控制方向,下图可以看出其渐变规则。当角度为0deg时,渐变方向从下到上;当角度是90deg时,渐变方向从左到右。
径向渐变由中心向外进行颜色渐变。
语法
background-image: radial-gradient(size shape, color-1 percentage-1/length-1, color-2 percentage-2/length-2, ...);
解释说明:
语法
/*重复线性渐变*/ background-image: repeating-linear-gradient(to direction, color-1 percentage-1/length-1,color-2 percentage-2/length-2,...); /*重复径向渐变*/ background-image: repeating-radial-gradient(size shape, color-1 percentage-1/length-1, color-2 percentage-2/length-2, ...);
解释说明:
上面以背景为例讲述了渐变的分类及实现,下面简单扩展一下,讲一讲边框的渐变,之前写过一篇文章《CSS之图片特殊用法》,里面有讲到将图片作为边框的背景,渐变神色与上述情况类似,只需要将图片地址改为渐变色就可以了,示例代码如下
border-image: linear-gradient( blue ,green ,yellow ,black) 10;
同样由《CSS之图片特殊用法》可以延伸,要是字体颜色渐变,只需要将背景图改为渐变色就可以了,具体代码如下:
background-image:radial-gradient( blue 10px,green 20px,yellow ,black); background-clip: text; -webkit-background-clip: text; /*兼容chrome*/ color: transparent;
注:background-clip有兼容性问题,此需要根据浏览器不同使用不同的代码;text属性值目前是实验性值,且其在ie中无效,不建议在生产环境中使用。
*请认真填写需求信息,我们会在24小时内与您取得联系。