CSS3渐变、过渡、转换、动画

一、CSS3渐变

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),可用于创建减弱变淡的效果。从左到右的线性渐变,带有透明度:

#grad {background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); }

3.CSS3 径向渐变

 颜色结点均匀分布(默认情况下)

#grad { background-image: radial-gradient(red, yellow, green); }

  1. 颜色结点不均匀分布

#grad { background-image: radial-gradient(red 5%, yellow 15%, green 60%); }

指的是到百分之几的时候是什么颜色,而不是某一个颜色占比多少。

  1. 设置形状

shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。

#grad { background-image: radial-gradient(circle, red, yellow, green); }

二、CSS3过渡

1.它是如何工作?

CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。要实现这一点,必须规定两项内容:

1、指定要添加效果的CSS属性

2、指定效果的持续时间。

如果未指定的期限,transition将没有任何效果,因为默认值是0。

例子:

div:hover { width:300px; }

div { transition: width 2s, height 2s, transform 2s;

 -webkit-transition: width 2s, height 2s, -webkit-transform 2s; }

如果未指定的期限,transition将没有任何效果,因为默认值是0。

2.过渡属性

属性

描述

CSS

transition

简写属性,用于在一个属性中设置四个过渡属性。

3

transition-property

规定应用过渡的 CSS 属性的名称。

3

transition-duration

定义过渡效果花费的时间。默认是 0。

3

transition-timing-function

规定过渡效果的时间曲线。默认是 "ease"。

3

transition-delay

规定过渡效果何时开始。默认是 0。

3

ease 过渡速度:慢-快-慢

linear过渡速度:匀速

CSS3渐变、过渡、转换、动画_第1张图片

 三、CSS3 2D 转换(保持原来的位置,不会占别人的位置)

1.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像素。

2.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; 设置旋转轴心(也可用像素)

3.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倍的高度

4。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度。

四、CSS3 3D 转换

1.rotateX() 方法

rotateX()方法,围绕其在一个给定度数X轴旋转的元素。

div { transform: rotateX(120deg);

-webkit-transform: rotateX(120deg); /* Safari 与 Chrome */ 

}

演示示例rotateX() 方法

2.rotateY() 方法

rotateY()方法,围绕其在一个给定度数Y轴旋转的元素。

div { transform: rotateY(130deg);

-webkit-transform: rotateY(130deg); /* Safari 与 Chrome */ 

3.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 旋转。(如:ratate(1,0,1,30deg))

rotateX(angle)

定义沿 X 轴的 3D 旋转。

rotateY(angle)

定义沿 Y 轴的 3D 旋转。

rotateZ(angle)

定义沿 Z 轴的 3D 旋转。

perspective(n)

定义 3D 转换元素的透视视图。

五、CSS3动画

1.@keyframes 规则

@keyframes 规则是创建动画。

2.CSS3动画是什么?

动画是使元素从一种样式逐渐变化为另一种样式的效果。您可以改变任意多的样式任意多的次数。

当在 @keyframes 创建动画,把它绑定到一个选择器(动画的名称),否则动画不会有任何效果。规定动画的名称,规定动画的时长

请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。

0% 是动画的开始,100% 是动画的完成。

例:把 "myfirst" 动画捆绑到 div 元素,时长:5 秒:当动画为 25% 及 50% 时改变背景色,然后当动画 100% 完成时再次改变:

div { animation: myfirst 5s;

-webkit-animation: myfirst 5s; /* Safari 与 Chrome */ 

}

@keyframes myfirst { 

0% {background: red;} 

25% {background: yellow;} 

50% {background: blue;} 

100% {background: green;} 

} 

3.居于与CSS3的动画属性

属性

描述

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"。

逆向为:alternate

3

animation-play-state

规定动画是否正在运行或暂停。默认是 "running"。只有这个需要单独写,不能和别的合写)暂停是:paused

3

设置钟表时:

steps(60)指:分60次走完这个动画

你可能感兴趣的:(HTML,css,css3,css,html)