CSS3之渐变

一、CSS3渐变简介

CSS3渐变是什么?渐变是两种或多种颜色之间的平滑过渡。CSS3 渐变可以让你在两个或多个指定的颜色之间显示平稳的过渡。
CSS3 定义了两种类型的渐变:

  • 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向
  • 径向渐变(Radial Gradients)- 由它们的中心定义

二、什么是色标

在创建渐变的过程中,可以指定多个中间颜色值,这个值称为色标。每个色标包含一种颜色和一个位置,浏览器从每个色标的颜色淡出到下一个,以创建平滑的渐变。

三、CSS3线性渐变

在线性渐变过程中,颜色沿着一条直线过度:从左侧到右侧,从右侧到左侧,从顶部到底部,从底部到顶部或沿任意轴。

CSS3制作渐变效果,首先指定一个渐变的方向、起始颜色、结束颜色。具有这三个参数就可以制作一个简单、普通的渐变效果。

如果制作一个复杂的渐变效果,就需要在同一个渐变方向增添多个色标。具备这些渐变参数(至少三个),各浏览器就会绘制与渐变线垂直的颜色结来填充整个容器。

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

CSS3线性渐变语法及参数

线性渐变 - 从上到下(默认情况下)
语法:background: linear-gradient(direction, color-stop1, color-stop2, ...);

示例1:预定义方向

示例图:


示例代码:


 

    
    CSS3线性渐变
    
 

    
    
从上到下(默认情况下)
从左到右
对角

示例2:使用角度

如果你想要在渐变的方向上做更多的控制,你可以定义一个角度,而不用预定义方向(to bottom、to top、to right、to left、to bottom right,等等)。
角度是指水平线和渐变线之间的角度,逆时针方向计算。换句话说,0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。
语法:background: linear-gradient(angle, color-stop1, color-stop2);

示例图:


示例代码:




    
    CSS3线性渐变
    
 

    
    
0 deg
90 deg
180 deg
-90 deg

示例3:使用多个颜色结点

示例图1:


示例代码1:


 

    
    CSS3线性渐变
    
 

    
    
使用多颜色结点

示例图2:


示例代码2:


 

    
    CSS3线性渐变
    
 

    
    
3 个颜色结点(均匀分布)
3 个颜色结点(不均匀分布)

示例4:使用透明度(transparent)

CSS3 渐变也支持透明度(transparent),可用于创建减弱变淡的效果。
为了添加透明度,我们使用 rgba() 函数来定义颜色结点。rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。

示例图:


示例代码:


 

    
    CSS3线性渐变
    
 

    
    
线性渐变 - 透明度

四、CSS3径向渐变

CSS3径向渐变是圆形或椭圆形渐变。颜色不再沿着一条直线轴变化,而是从一个起点朝所有方向混合。径向渐变由它的中心定义。

为了创建一个径向渐变,你也必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以指定渐变的中心、形状(圆形或椭圆形)、大小。默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)。

CSS3径向渐变的语法及参数

语法:background: radial-gradient(center, shape size, start-color, ..., last-color);

渐变的中心位置取值:

  • :用长度值指定径向渐变圆心的横坐标或纵坐标,可以为负值
  • :用百分比指定径向渐变圆心的横坐标或纵坐标,可以为负值
  • top:设置顶部为径向渐变圆心的纵坐标值
  • right:设置右边为径向渐变圆心的横坐标值
  • bottom:设置底部为径向渐变圆心的纵坐标值
  • left:设置左边为径向渐变圆心的横坐标值
  • center:设置中间为径向渐变圆心的横坐标值或纵坐标值(默认值)

定义径向渐变的形状

主要用来定义渐变的形状,主要包括两个值circle和ellipse。

  • circle:指定圆形的径向渐变
  • ellipse:指定椭圆形的径向渐变

指定径向渐变的形状大小

用来确定径向渐变的结束形状大小。

  • closest-side:指定径向渐变的半径长度为从圆心到离圆心最近的边
  • closest-corder:指定径向渐变的半径长度为从圆心到离圆心最近的角
  • farthest-side:指定径向渐变的半径长度为从圆心到离圆心最远的边
  • farthest-corner:指定径向渐变的半径长度为从圆心到离圆心最远的角

示例图1:


示例代码1:


 

    
    CSS3线性渐变
    
 

    
    
颜色结点均匀分布
颜色结点不均匀分布

示例图2:


示例代码2:


 

    
    CSS3线性渐变
    
 

    
    
椭圆形 Ellipse
圆形 Circle

示例图3:


示例代码3:


 

    
    CSS3线性渐变
    
 

    
    
closest-side
closest-corner
farthest-side
farthest-corner

五、CSS3重复渐变

CSS3通过repeating-linear-gradient和repeating-radial-gradient可以直接实现重复的渐变效果。

示例效果图:


示例代码:


 

    
    CSS3线性渐变
    
 

    
    
重复线性渐变
重复径向渐变

示例效果:笔记本效果


示例代码:


 

    
    CSS3线性渐变
    
 

    

六、综合案例

使用CSS3渐变制作纹理效果。

示例图:


示例代码:


 

    
    CSS3渐变纹理效果
    
 

    

你可能感兴趣的:(CSS3之渐变)