css进阶六(过渡、变形)

本文详细介绍了CSS3中的过渡属性(包括transition-property、duration、timing-function、delay)以及变形技术(transform)的使用方法和示例,对比了过渡与变形的区别。掌握这些技巧,提升网页动画和视觉效果的控制能力。
摘要由CSDN通过智能技术生成


一、过渡

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、两者一般都会设置触发的条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值