CSS 阴影 轮廓 渐变详解

html-css018

CSS 阴影 轮廓 渐变详解,第1张

轮廓是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用, 比如

实现线性渐变,你至少需要定义两种颜色的结点,这两种结点就是你想平稳过渡的颜色,即:其中一种颜色结点为起点,另一种颜色结点为结束点

同时也可以定义渐变的方向,是从上到下渐变,还是从左至右渐变,或者从右至左渐变,默认情况下是从上至下渐变的

当然也可以对角渐变,如:从左上角到右下角

创建重复的线性渐变

to left:设置渐变为从右到左。相当于: 270deg

to right:设置渐变从左到右。相当于: 90deg

to top:设置渐变从下到上。相当于: 0deg

to bottom:设置渐变从上到下。相当于: 180deg (这是默认值,等同于留空不写)

如果还想更多地控制渐变方向,可以改变渐变的角度

也可以在渐变中使用透明度, 所以我们得使用 rgba() 函数来定义颜色结点。 rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明

径向渐变是由中心向外渐变的。可以定义它中心 (默认渐变是中心是 center ) 、形状(圆形或椭圆形)、大小等

其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse

给文字 color 添加渐变效果的话, 可以这样写:

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

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

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

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