保姆级解读!CSS属性transform变形+2D转换+3D转换实例+代码+解析——Web前端系列学习笔记

Posted 来老铁干了这碗代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保姆级解读!CSS属性transform变形+2D转换+3D转换实例+代码+解析——Web前端系列学习笔记相关的知识,希望对你有一定的参考价值。


transfrom

transform,翻译成中文的含义是“改变,使…变形;转换”,用于向元素应用2D或3D 转换。

在这里插入图片描述
transform属性的基本语法如下所示:

transform:none | transform-functions;

属性一:默认值为none,适用于内联元素和块元素,表示不进行变形。
属性二:用于设置变形函数,可以是一个或多个变形函数列表。


2D转换

transform-functions的常用于2D转换的函数说明如下表所示。
在这里插入图片描述

案例代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>CSS3 2D转换</title>
    <style>
        .demo{
            margin: 25px;
            padding: 0;
            width: 150px;
            height: 50px;
            background-color:  #2bab79;
            font-weight: bold;
            font-size: larger;
            float: left;
        }
        .trans1{
            transform:rotate(30deg);
        }
        .trans2{
            transform:skew(30deg);
        }
        .trans3{
            transform:scale(0.8);
        }
        .trans4{
            transform:translate(5px,50px);
        }

        /*教材元素旋转对比截图部分的代码*/
        /*.demo{*/
        /*margin: 50px;*/
        /*padding:0px;*/
        /*width: 150px;*/
        /*height: 50px;*/
        /*background-color: rgba(255, 177, 81, 0.02);*/
        /*font-weight: bold;*/
        /*font-size: larger;*/
        /*border: 1px dashed;*/
        /*}*/
        /*.trans{*/
        /*margin: 0px;*/
        /*padding: 0;*/
        /*width: 150px;*/
        /*height: 50px;*/
        /*background-color: #2bab79;*/
        /*transform:rotate(30deg) ;*/
        /*transform-origin: left 0 0 ;*/
        /*}*/
    </style>
</head>
<body>
<div class="demo">不设置变形</div>
<div class="demo trans1">rotate(30deg)</div>
<div class="demo trans2">skew(30deg)</div>
<div class="demo trans3">scale(0.8)</div>
<div class="demo trans4">translate(5,50px)</div>
<!--教材元素旋转对比截图部分的代码-->
<!--<div class="demo"><div class="trans">rotate(30deg)</div></span></div>-->
</body>
</html>

效果图

在这里插入图片描述


元素变形原点

元素的变形都有一个原点,元素围绕着这个点进行变形或者旋转,默认的起始位置是元素的中心位置。

CSS 变形使用transform-origin属性指定元素变形基于的原点,语法格式具体如下:

transform-origin: x-axis y-axis z-axis;

transform-origin最多接受三个值,分别是x轴、y轴和z轴的偏移量。

transform-origin的参数说明如下表所示。

在这里插入图片描述
在这里插入图片描述
注意:transform-origin的三个参数均为可选参数,参数值为0px时可以省略不写。


3D转换

3D 变形是指某个元素围绕其x轴、y轴、z轴进行旋转,transform-functions的常用于3D转换的函数说明如下表所示。
在这里插入图片描述

3D转换——案例

perspective属性的透视效果就是用于实现视觉上的3D效果的,接下来看一个典型的案例——立方体,页面效果如下所示。
在这里插入图片描述


案例代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS 3D转换</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #F7F7F7;
        }
        .box {
            width: 200px;
            height: 200px;
            text-align: center;
            line-height: 200px;
            font-size: 24px;
            margin: 100px auto;
            position: relative;
            perspective: 1000px;
            transform-style: preserve-3d;
            transform: rotateX(-30deg) rotateY(30deg);
        }
        .front, .back, .left, .right, .top , .bottom {
            position: absolute;
            width: 100%;
            height: 100%;
            left: 0;
            top: 0;
            opacity: 0.5;
        }
        .front {
            background-color: pink;
            transform: translateZ(100px);
        }

        .left {
            background-color: green;
            transform: rotateY(90deg) translateZ(-100px);
        }

        .right {
            background-color: red;
            transform: rotateY(-90deg) translateZ(-100px);
        }

        .top {
            background-color: blue;
            transform: rotateX(90deg) translateZ(100px);
        }

        .bottom {
            background-color: yellow;
            transform: rotateX(-90deg) translateZ(100px);
        }

        .back {
            background-color: purple;
            transform: translateZ(-100px);
        }
    </style>
</head>
<body>
<div class="box">
    <div class="front">front</div>
    <div class="back">back</div>
    <div class="left">left</div>
    <div class="right">right</div>
    <div class="top">top</div>
    <div class="bottom">bottom</div>
</div>
</body>
</html>

以上是关于保姆级解读!CSS属性transform变形+2D转换+3D转换实例+代码+解析——Web前端系列学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

深入理解CSS变形transform(2d)

2D变形

css3 2D转换效果

前端基础学习CSS新特性之变形

前端基础学习CSS新特性之变形

前端基础学习CSS新特性之变形