细说css的渐变属性(conic-gradient+linear-gradient+radial-gradient)

html-css017

细说css的渐变属性(conic-gradient+linear-gradient+radial-gradient),第1张

conic-gradient是圆锥渐变,以一个点为中心起始点,沿着圆周变化。

语法: conic-gradient( from 起始角度 at 中心点位置, 渐变断点 )

兼容性:

一个简单的例子:看清他的渐变方向,起始点是图形中心,然后以顺时针方向绕中心实现渐变效果。

linear-gradient 线性渐变的方向是一条直线,可以是任何角度,向下/向上/向左/向右/对角方向。看一个简单的例子。repeating-linear-gradient()表示重复的线性渐变。

语法: background-image: linear-gradient(direction, color-stop1, color-stop2, ...)

为了创建一个线性渐变,你必须至少定义两种颜色节点。颜色节点即你想要呈现平稳过渡的颜色。同时,你也可以设置一个起点和一个方向(或一个角度)。

径向渐变是从圆心点以椭圆形状向外扩散。

语法: background-image: radial-gradient(shape size at position, start-color, ..., last-color)

shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。

repeating-radial-gradient() 函数用于重复径向渐变。

https://gitee.com/susuhhhhhh/css_demos

实现图片的透明度渐变效果,效果如下:

先说下我的实现,并没有用什么黑科技,而是通过两层图层堆叠的方式来做的。下面一层就是单纯的 svg 图片,上面覆盖了一层遮罩,并设置遮罩的背景色为蓝色到透明色的从左到右渐变。这样,看上去就是一个图片从右到左渐渐变得透明的效果。

这是我比较粗暴的方法,后来在网上看到一种更加优雅的方式:

大体上差不多,重点是 CSS 的 background-image 属性可以设置多张图片,用逗号隔开 。因为我不知道这个属性有这个能力才会额外加了个渐变透明图层来实现效果。