博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS3新增的渐变背景,你了解多少?
阅读量:4149 次
发布时间:2019-05-25

本文共 4720 字,大约阅读时间需要 15 分钟。

CSS3为背景了线性渐变支持,这样就允许开发者进行更多灵活的背景设置。

1.使用line-gradient设置线性渐变

CSS3为线性渐变提供了line-gradient函数,linear-gradient() 用于创建一个线性渐变的 "图像"。语法格式如下所示:

line-gradient(方向? 颜色列表)

上面语法中的方向用于指定线性渐变的方向,该方向可以省略。如果省略指定方向,线性渐变的方向默认是从上到下。方向参数支持如下属性。

描述
to top 代表从下到上。
to bottom 代表从上到下。(默认值)
to left 代表从左到右。
to right 代表从左到右。
to left top 代表从右下角到左上角。
to right top 代表从左下角到右上角。
to left bottom 代表从右下角到左下角。
to right bottom 代表从左上角到右下角。
Ndeg 指定角度值。其中0deg代表12点方向,该角度代表顺时针转过去的角度。

 下面代码示范了不同方向的线性渐变。

	
线性渐变背景 background:linear-gradient(red, blue)、红蓝线性渐变

上面代码中定义的第一个div元素,通过background属性指定了线性渐变,没有为该线性渐变指定方向,因此默认是从上到下。linear-gradient()中的颜色只给出了red和blue两种颜色,意味着线性渐变的开始是红色,最后是蓝色,如下图所示。图片中还有8个按钮,分别就是渐变方向参数的8个属性。

除了使用简单的to top、to bottom等控制线性渐变方向之外,CSS3也允许通过角度来指定线性渐变的方向,如下面代码所示。

	
线性渐变背景 background:linear-gradient(0deg, red, blue)、红蓝线性渐变
角度:

通过background属性指定线性渐变,并且为线性渐变指定了方向:0deg(从下到上的12点方向)。

图片中定义了一个滑动条,它可以改变线性背景的方向(顺时针旋转),比如将角度设置为45°,那么线性渐变的方向就是从左下角到右上角,如下图所示。

颜色列表最简单的形式就是红到蓝,分别表示线性渐变颜色的开始和结束,其实我们可以指定多种颜色,也可以指定多种颜色的位置(可以用百分比和长度值显示)。如果这些颜色指定了位置,那么线性渐变将会平均分布这些颜色,下面代码所示。

	
线性渐变背景 background:linear-gradient(30deg, red, green, blue)、红绿蓝线性渐变
background:linear-gradient(45deg, red, green, blue, yellow)、红绿蓝黄线性渐变
background:linear-gradient(90deg, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1))、透明度改变的线性渐变
background:linear-gradient(135deg, red 20%, green 40%, blue 70%)、红绿蓝线性渐变
background:linear-gradient(150deg, red 30%, green 40%, blue 60%, yellow 70%)、红绿蓝黄线性渐变
background:linear-gradient(200deg, red 40px, green 60px, blue 90px)、红绿蓝线性渐变

浏览器中的效果图如下。

2.使用repeating-linear-gradient设置循环线性渐变

repeating-linear-gradient() 函数用于创建重复的线性渐变 "图像"。语法如下:

background: repeating-linear-gradient(angle | to side-or-corner, color-stop1, color-stop2, ...);
描述
angle  定义渐变的角度方向。从 0deg 到 360deg,默认为 180deg。
side-or-corner  指定线性渐变的起始位置。由两个关键字组成:第一个为指定水平位置(left 或 right),第二个为指定垂直位置(top 或bottom)。 顺序是随意的,每个关键字都是可选的。
color-stop1, color-stop2,...  指定渐变的起止颜色,由颜色值、停止位置(可选,使用百分比指定)组成。

循环线性渐变会利用给出的渐变颜色,从而形成更绚丽的背景,如下面代码所示。

	
循环线性渐变 background:repeating-linear-gradient(red, blue 10%, magenta 20%)
红、蓝、洋红循环线性渐变
角度:

 repeating-linear-gradient设置的线性渐变会利用给出的red、blue、magenta这三种颜色来生成渐变背景。与普通线性渐变相同的是,循环线性渐变同样支持指定方向,指定方向的方式也一样。

3.使用radial-gradient设置径向渐变

CSS3还提供了radial-gradient函数设置径向渐变,radial-gradient() 函数用径向渐变创建 "图像"。径向渐变由中心点定义。为了创建径向渐变你必须设置两个终止色。语法如下:

background: radial-gradient(形状? 大小? at x坐标 y坐标, 颜色列表);
描述
形状

确定圆的类型:

    ● ellipse (默认): 指定椭圆形的径向渐变。

    ● circle :指定圆形的径向渐变

大小

定义渐变的大小,可能值: 

    ● farthest-corner (默认) : 指定径向渐变的半径长度为从圆心到离圆心最远的角

    ● closest-side :指定径向渐变的半径长度为从圆心到离圆心最近的边

    ● closest-corner : 指定径向渐变的半径长度为从圆心到离圆心最近的角

    ● farthest-side :指定径向渐变的半径长度为从圆心到离圆心最远的边

位置

定义渐变的位置。可能值: 

    ● left:设置x坐标的最左边。

    ● right:设置x坐标的最右边。

    ● center(默认):设置中间为径向渐变圆心的纵坐标值。

    ● top:设置顶部为径向渐变圆心的纵坐标值(y坐标)。

    ● bottom:设置底部为径向渐变圆心的纵坐标值(y坐标)。

颜色列表 用于指定渐变的起止颜色。径向渐变的颜色列表和线性渐变的颜色列表完全一样。

下面代码示范了通过位置改变径向渐变的圆心。

	
循环径向渐变 background:repeating-radial-gradient(red, blue 30px, magenta 50px)
红、蓝、洋红循环径向渐变
x:

y:

效果图:

CSS3也允许使用数值(包括百分比和长度值)来指定径向渐变的圆心,下面代码所示。

	
径向渐变背景 background:radial-gradient(red, blue)、红蓝径向渐变
x:

y:

效果图:

下面代表示范了通过大小控制圆心的径向渐变的半径的方法。

	
径向渐变背景 background:radial-gradient(red, blue)、红蓝径向渐变

效果图:

CSS3也允许使用数值来指定径向渐变的大小,下面代码所示。

	
径向渐变背景 background:radial-gradient(red, blue)、红蓝径向渐变
椭圆渐变:

横向半径:

纵向半径:

效果图:

 

 径向渐变既可以指定多种颜色又可以为各种颜色指定位置,如果为这些颜色指定位置,那么径向渐变将会平均分布这些颜色,如下面代码所示。

	
径向渐变背景 background:radial-gradient(at 40px 90px, red, green, blue)
红绿蓝指定圆心的径向渐变
background:radial-gradient(ellipse, red, green, blue)
红绿蓝指定形状的径向渐变
background:radial-gradient(20px, red, green, blue)
红绿蓝指定大小的径向渐变
background:radial-gradient(at 100px 50px, red, green, blue, yellow)
红绿蓝黄指定圆心的径向渐变
background:radial-gradient(ellipse at 100px 50px, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1))
透明度改变指定形状、圆心的径向渐变
background:radial-gradient(circle 50px, red 20%, green 40%, blue 70%)
红绿蓝指定形状、大小的径向渐变
background:radial-gradient(circle 50px at 150px 60px, red 20%, green 40%, blue 70%)
红绿蓝指定形状、大小、圆心的径向渐变
background:radial-gradient(ellipse 100px 30px at 150px 60px, red 30%, green 40%, blue 60%, yellow 70%)
红绿蓝黄指定形状、大小、圆心的径向渐变

效果图: 

 4.使用repeating-radial-gradient设置循环径向渐变

用重复的径向渐变创建图像。repeating-radial-gradient()的语法与radial-gradient()相同。下面代码示范了循环径向渐变的功能。

	
循环径向渐变 background:repeating-radial-gradient(red, blue 30px, magenta 50px)
红、蓝、洋红循环径向渐变
x:

y:

效果图: 

使用repeating-radial-gradient设置循环径向渐变,使用给出的blue、red、magenta三种颜色来生成渐变背景。 

6.线性渐变和径向渐变的区别

简单来说,线性渐变是直线渐变,径向是圆形的渐变。

线性渐变:比如从左向右拖,它就会按照从左向右笔直进行渐变。

径向渐变:从起点到终点颜色从内到外进行圆形渐变。

 

------------如果大家喜欢的博客,可以点击左上角的关注哦。

转载地址:http://eypti.baihongyu.com/

你可能感兴趣的文章
[LeetCode]Construct Binary Tree from Inorder and Postorder Traversal
查看>>
[LeetCode]Convert Sorted Array to Binary Search Tree
查看>>
[LeetCode]Longest Valid Parentheses
查看>>
[LeetCode]Maximal Rectangle
查看>>
[LeetCode]Maximum Subarray
查看>>
[LeetCode]Median of Two Sorted Arrays
查看>>
[LeetCode]Merge Intervals
查看>>
[LeetCode]Merge k Sorted Lists
查看>>
[LeetCode]Merge Sorted Array
查看>>
[LeetCode]Merge Two Sorted Lists
查看>>
[LeetCode]Minimum Depth of Binary Tree
查看>>
[LeetCode]Minimum Path Sum
查看>>
[LeetCode]Minimum Window Substring
查看>>
[LeetCode]Multiply Strings
查看>>
[LeetCode]N-Queens II
查看>>
[LeetCode]Next Permutation
查看>>
[LeetCode]Palindrome Number
查看>>
[LeetCode]Palindrome Partitioning
查看>>
[LeetCode]Palindrome Partitioning II
查看>>
[LeetCode]Partition List
查看>>