04-10 CSS3渐变、过渡、转换、动画
一、 CSS颜色渐变
1. CSS3渐变的分类
线性渐变(Linear Gradient)- 向下/向上/向左/向右/对角方向
径向渐变(radial-gradient)- 由它们的中心定义
2.** CSS3 线性渐变**
为了创建一个线性渐变,你必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,你也可以设置一个起点和一个方向(或一个角度)。
(1)从上到下
从顶部开始的线性渐变。起点是红色,慢慢过渡到蓝色:
#grad { background-image: linear-gradient(#e66465, #9198e5); }
(2)从左到右
从左边开始的线性渐变。起点是红色,慢慢过渡到蓝色:
#grad {
height: 200px; background-image: linear-gradient(to right, red , yellow);
}
(3)对角
从左上角开始(到右下角)的线性渐变。起点是红色,慢慢过渡到蓝色:
#grad {
height: 200px; background-image: linear-gradient(to bottom right, red, yellow);
}
(4)对角使用多个颜色结点
带有多个颜色结点的从上到下的线性渐变:
#grad { background-image: linear-gradient(red, yellow, green); }
(5)使用透明度(transparent)
CSS3 渐变也支持透明度(transparent),可用于创建减弱变淡的效果。
使用rgba() 函数来定义颜色结点。rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。
从左到右的线性渐变,带有透明度:
#grad {
background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
}
(6)CSS3 径向渐变
1、 颜色结点均匀分布(默认情况下)
#grad {
background-image: radial-gradient(red, yellow, green);
}
2、颜色结点不均匀分布
#grad {
background-image: radial-gradient(red 5%, yellow 15%, green 60%);
}
3、设置形状
shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。
#grad {
background-image: radial-gradient(circle, red, yellow, green);
}
彩虹
(3) translate() 方法
translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。
div { transform: translate(50px,100px);
-ms-transform: translate(50px,100px); /* IE 9 /
-webkit-transform: translate(50px,100px); / Safari and Chrome */
}
translate值(50px,100px)是从左边元素移动50个像素,并从顶部移动100像素。
(4) 、rotate() 方法
rotate()方法,在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。
div { transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 /
-webkit-transform: rotate(30deg); / Safari and Chrome */
}
rotate值(30deg)元素顺时针旋转30度。
transform-origin: right top; 设置旋转轴心
(5) 、scale() 方法
scale()方法,该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数:
-ms-transform:scale(2,3); /* IE 9 /
-webkit-transform: scale(2,3); / Safari /
transform: scale(2,3); / 标准语法 */
scale(2,3)转变宽度为原来的大小的2倍,和其原始大小3倍的高度。
(6) 、skew() 方法
包含两个参数值, 。
skewX();表示只在X轴(水平方向)倾斜。
skewY();表示只在Y轴(垂直方向)倾斜。
div { transform: skew(30deg,20deg);
-ms-transform: skew(30deg,20deg); /* IE 9 /
-webkit-transform: skew(30deg,20deg); / Safari and Chrome */
}
skew(30deg,20deg) 元素在X轴和Y轴上倾斜20度30度。
4.CSS3 3D 转换
(1) 、3D 转换
CSS3 允许您使用 3D 转换来对元素进行格式化。
在本节中,您将学到其中的一些 3D 转换方法:
rotateX()
rotateY()
(2) 、rotateX() 方法
rotateX()方法,围绕其在一个给定度数X轴旋转的元素。
div { transform: rotateX(120deg);
-webkit-transform: rotateX(120deg); /* Safari 与 Chrome */
}
(3) 、rotateY() 方法
rotateY()方法,围绕其在一个给定度数Y轴旋转的元素。
div { transform: rotateY(130deg);
-webkit-transform: rotateY(130deg); /* Safari 与 Chrome */
(4) 、3D 转换其他方法
函数 | 描述 |
---|---|
matrix3d(n,n,n,n,n,n, | |
n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 |
translate3d(x,y,z) | 定义 3D 转化。 |
translateX(x) | 定义 3D 转化,仅使用用于 X 轴的值。 |
translateY(y) | 定义 3D 转化,仅使用用于 Y 轴的值。 |
translateZ(z) | 定义 3D 转化,仅使用用于 Z 轴的值。 |
scale3d(x,y,z) | 定义 3D 缩放转换。 |
scaleX(x) | 定义 3D 缩放转换,通过给定一个 X 轴的值。 |
scaleY(y) | 定义 3D 缩放转换,通过给定一个 Y 轴的值。 |
scaleZ(z) | 定义 3D 缩放转换,通过给定一个 Z 轴的值。 |
rotate3d(x,y,z,angle) | 定义 3D 旋转。 |
rotateX(angle) | 定义沿 X 轴的 3D 旋转。 |
rotateY(angle) | 定义沿 Y 轴的 3D 旋转。 |
rotateZ(angle) | 定义沿 Z 轴的 3D 旋转。 |
perspective(n) | 定义 3D 转换元素的透视视图。 |
二、css动画
div { animation: myfirst 5s;
-webkit-animation: myfirst 5s; /* Safari 与 Chrome /
}
@keyframes myfirst {
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}
@-webkit-keyframes myfirst / Safari 与 Chrome */ {
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}
1、居于与CSS3的动画属性
下面的表格列出了@keyframes 规则和所有动画属性:
属性 | 描述 | CSS |
---|---|---|
@keyframes | 规定动画。 | 3 |
animation | 所有动画属性的简写属性,除了 animation-play-state 属性。 | 3 |
animation-name | 规定 @keyframes 动画的名称。 | 3 |
animation-duration | 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 | 3 |
animation-timing-function | 规定动画的速度曲线。默认是 “ease”。 | 3 |
animation-fill-mode | 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。 | 3 |
animation-delay | 规定动画何时开始。默认是 0。 | 3 |
animation-iteration-count | 规定动画被播放的次数。默认是 1。 | 3 |
animation-direction | 规定动画是否在下一周期逆向地播放。默认是 “normal”。 | 3 |
animation-play-state | 规定动画是否正在运行或暂停。默认是 “running”。 | 3 |