CSS 阴影 轮廓 渐变详解

html-css019

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 添加渐变效果的话, 可以这样写:

有两种样式,一种是线性渐变,一种是径向渐变

线性渐变:background:linear-gradient(0deg,red,orange)0deg意思是渐变角度为0°

径向渐变:background:linear-gradient(circle,red 0%,orange)circle的意思是径向渐变的形状是圆形,eclipse是椭圆形(默认) 0%表示调整径向渐变颜色节点不均匀分布.

css文件渐变虽然兼容性比较差,但是用在移动端和chrome中还是没有问题的。

实现文件渐变的方法有两种

效果如下

-webkit-background-clip W3C支持的属性说明

但是并没有text 属性,所以这个只能在chrome上看到效果,在其他浏览器没有实现,它的兼容性就有很大的问题了

-webkit-background-clip: text 用文本剪辑背景,用渐变背景作为颜色填充文本。

缺点:webkit 内核浏览器特有

效果如下

使用:mask-image

缺点:webkit 内核浏览器特有

采用 svg 方式

实现原理:程序首先算出字体所在容器的高度N,然后清空容器内容,并添加N个span,每个span内容都为原容器的文字,每个span的颜色根据渐变色进行计算,而且其中的文字定位都相比之前一个span的文字向上偏移一个像素。CSS中可以看到,每个span的高度都为1。这样,我们就通过N各不同颜色的1px的span把字体“拼”出来了,然后加上“高光/阴影”就搞定。