文章目录
一、过渡
1、transition-property属性
transition-property 属性用于指定应用过渡效果的CSS属性的名称。
(1)基本格式
transition-property: none | all | property;
属性值 | 描述 |
---|---|
none | 没有属性会获得过渡效果 |
all | 所有属性都将获得过渡效果 |
property | 定义应用过渡效果的CSS属性名称,多个名称之间以逗号分隔 |
(2)示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 0 auto;/*使盒子上下边框为0,再居中*/
transition-property: color boder background-color;
/*当鼠标悬停在盒子上时,过渡变化的属性有字体颜色,背景颜色和盒子边框颜色*/
}
.a1:hover {
color: rgb(1, 2, 1);
border: rgb(235, 232, 51) dashed 3px;
background-color: rgb(52, 189, 52);
}
</style>
<body>
<div class="a1">西安邮电大学</div>
</body>
</html>
过渡前的盒子:
过渡后的盒子:
2、transition-duration属性
transition-duration属性用于定义过渡效果花费的时间,默认值为0,常用单位是秒(s)或者毫秒(ms)。(1)基本格式
transition-duration:time;
(2)示例
可以给我们上述代码加上transition-duration属性,就能观察到过渡时间。
.a1 {
width: 500px;
height: 400px;
brder: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 0 auto;/*使盒子上下边框为0,再居中*/
transition-property: color boder background-color;
/*当鼠标悬停在盒子上时,过渡变化的效果有字体颜色,背景颜色和盒子边框颜色*/
transition-duration: 3s;
}
3、transition-timing-function属性
transition-timing-function属性规定过渡效果的速度曲线,默认值为“ease“。(1)基本格式
transition-timing-function:linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n);
属性值 | 描述 |
---|---|
linear | 指定以相同速度开始至结束的过渡效果,等同于cubic-bezier(0,0,1,1))。 |
ease | 指定以慢速开始,然后加快,最后慢慢结束的过渡效果,等同于cubic-bezier(0.25,0.1,0.25,1)。 |
ease-in | 指定以慢速开始,然后逐渐加快(淡入效果)的过渡效果,等同于cubic-bezier(0.42,0,1,1)。 |
ease-out | 指定以慢速结束(淡出效果)的过渡效果,等同于cubic-bezier(0,0,0.58,1)。 |
ease-in-out | 指定以慢速开始和结束的过渡效果,等同于cubic-bezier(0.42,0,0.58,1)。 |
cubic-bezier(n,n,n,n) | 定义用于加速或者减速的贝塞尔曲线的形状,它们的值在0~1之间。 |
(2)示例
可以给我们上述代码加上transition-timing-function属性,就能观察到过渡效果的速度曲线。
.a1 {
width: 500px;
height: 400px;
brder: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 0 auto;/*使盒子上下边框为0,再居中*/
transition-property: color boder background-color;
/*当鼠标悬停在盒子上时,过渡变化的效果有字体颜色,背景颜色和盒子边框颜色*/
transition-duration: 3s;
transition-timing-function: ease-in-out;
}
4、transition-delay属性
transition-delay属性规定过渡效果何时开始,默认值为0,常用单位是秒(s)或者毫秒(ms)。(1)基本格式
transition-delay:time;
属性值 | 描述 |
---|---|
正数 | 过渡动作会延迟触发。 |
负数 | 过渡动作会从该时间点开始,之前的动作被截断。 |
(2)示例
可以给我们上述代码加上transition-delay属性,就能观察到过渡效果何时开始。
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 0 auto;/*使盒子上下边框为0,再居中*/
transition-property: color boder background-color;
/*当鼠标悬停在盒子上时,过渡变化的效果有字体颜色,背景颜色和盒子边框颜色*/
transition-timing-function: ease-in-out;
transition-delay: 5s;
}
5、transition属性
transition属性是一个复合属性,用于在一个属性中设置transition-property、transition-duration、transition-timing-function、transition-delay四个过渡属性。使用transition属性设置多个过渡效果时,它的各个参数必须按照顺序进行定义,不能颠倒。(1)基本格式
transition:property duration timing-function delay;
(2)注意
无论是单个属性还是简写属性,使用时都可以实现多个过渡效果。如果使用transition简写属性设置多种过渡效果,需要为每个过渡属性集中指定所有的值,并且使用逗号进行分隔。
二、变形
1、transform
CSS3的变形(transform)属性可以让元素在一个坐标系统中变形。
基本格式
transform:none | transform-functions;
transform属性的默认值为none,适用于内联元素和块元素,表示不进行变形。transform-function用于设置变形函数,可以是一个或多个变形函数列表。
2、transform-function函数
CSS3的变形(transform)属性可以让元素在一个坐标系统中变形。
2.1 平移
使用translate()方法能够重新定义元素的坐标,实现平移的效果。
电脑中的坐标轴:盒子原点是o点,x轴和y轴方向如图所示:
2.1.1 基本格式
transform:translate(x-value,y-value);
x-value指元素在水平方向上移动的距离,y-value指元素在垂直方向上移动的距离。如果省略了第二个参数,则取默认值0。当值为负数时,表示反方向移动元素。
2.1.2 示例
移动前的盒子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 0 auto;/*使盒子上下边框为0,再居中*/
}
</style>
<body>
<div class="a1">西安邮电大学</div>
</body>
</html>
移动后的盒子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 0 auto;/*使盒子上下边框为0,再居中*/
transform:translate(200px,200px)
}
</style>
<body>
<div class="a1">西安邮电大学</div>
</body>
</html>
2.2 缩放
scale() 方法用于缩放元素大小,该函数包含两个参数值,分别用来定义宽度和高度的缩放比例。
2.2.1 基本格式
transform:scale(x-axis,y-axis);
x-axis和y-axis参数值可以是正数、负数和小数。正数值表示基于指定的宽度和高度放大元素。负数值不会缩小元素,而是反转元素(如文字被反转),然后再缩放元素。如果第二个参数省略,则第二个参数等于第一个参数值。
2.2.2 示例
缩放前盒子:
缩放后盒子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 0 auto;/*使盒子上下边框为0,再居中*/
transform: scale(.8,1);/*.8即0.8的意思,表示宽度缩小到原来的百分之八十,1的意思是高度不变*/
}
</style>
<body>
<div class="a1">西安邮电大学</div>
</body>
</html>
补充:
translateX(): 指定对象X轴(水平方向)的平移
translateY(): 指定对象Y轴(垂直方向)的平移
2.3 倾斜
skew()方法能够让元素倾斜显示,该函数包含两个参数值,分别用来定义X轴和Y轴坐标倾斜的角度。
skew()方法倾斜示意图:
skewx是代表与X轴倾斜的角度,方向是逆时针;skewY是代表与Y轴倾斜的角度,方向是顺时针。
2.3.1 基本格式
transform:skew(x-angle,y-angle);
参数x-angle和y-angle表示角度值,第一个参数表示相对于X轴进行倾斜,第二个参数表示相对于Y轴进行倾斜,如果省略了第二个参数,则取默认值0。角度值单位为deg。
2.3.2 示例
倾斜前盒子:
倾斜后盒子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 80px auto;/*使盒子上下边框为0,再居中*/
transform: skew(30deg,30deg);
}
</style>
<body>
<div class="a1">西安邮电大学</div>
</body>
</html>
2.4 旋转
rotate()方法能够旋转指定的元素对象,主要在二维空间内进行操作。该方法中的参数允许传入负值,这时元素将逆时针旋转。
rotate()方法旋转示意图:
2.4.1 基本格式
transform:rotate(angle);
参数angle表示要旋转的角度值。如果角度为正数值,则按照顺时针进行旋转,否则,按照逆时针旋转。角度值单位为deg。
2.4.2 示例
旋转前盒子:
旋转后盒子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 80px auto;/*使盒子上下边框为0,再居中*/
transform: rotate(30deg);
}
</style>
<body>
<div class="a1">西安邮电大学</div>
</body>
</html>
2.4.3 3D旋转
1、基本格式:
transform:rotateX(a);
参数a用于定义旋转的角度值,单位为deg,其值可以是正数也可以是负数。如果值为正,元素将围绕X轴顺时针旋转;反之,如果值为负,元素围绕X轴逆时针旋转。
2、基本格式:
transform:rotateY(a);
参数a与rotateX(a)中的a含义相同,用于定义旋转的角度。如果值为正,元素围绕Y轴顺时针旋转;反之,如果值为负,元素围绕Y轴逆时针旋转。
2.5 中心点
变形操作都是以元素的中心点为基准进行的,如果需要改变这个中心点,可以使用transform-origin属性。
2.5.1 基本格式
transform-origin: x-axis y-axis z-axis;
transform-origin属性包含三个参数,其默认值分别为50% 50% 0,各参数的具体含义如下:
参数 | 描述 |
---|---|
x-axis | 定义视图被置于X轴的何处。可能的值有: left center right length % |
y-axis | 定义视图被置于Y轴的何处。可能的值有: top center bottom length % |
z-axis | 定义视图被置于Z轴的何处。可能的值有: length |
2.5.2 示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.a1 {
width: 500px;
height: 400px;
border: #000 solid 1px;
color: gold;/*设置字的颜色*/
background-color: burlywood;
overflow: hidden;/*假设文字超出边框则隐藏*/
margin: 80px auto;/*使盒子上下边框为0,再居中*/
transform: rotate(30deg);
transform-origin: 40% 50% 0;
}
</style>
<body>
<div class="a1">西安邮电大学</div>
</body>
</html>
三、变形和过渡的区别
1、变形能够设置对象的中心点;过渡默认是对象的左上角,不能改变;2、过渡效果是针对元素的属性进行的改变;变形是针对整个元素进行的改变;
3、过渡效果可以设定过渡的时间、曲线、延迟等;变形不能设置,变形是瞬间完成的变化;
4、过渡、变形都不会对其他元素的布局产生影响;
5、两者一般都会设置触发的条件。