美文网首页
css3 2D、3D变形

css3 2D、3D变形

作者: houxnan | 来源:发表于2020-01-29 12:57 被阅读0次

用transform对元素进行2D、3D变形,变形只对块级元素有效。

transform的基本属性及属性值:

transform: rotate(270deg); /*rotate 是旋转,rotate(270deg)是旋转270度*/

transform: translateX(300px);/*translate 是平移,可以向X、Y两个方向平移*/

transform: translateY(200px);

transform: translate(300px,300px);/*translate 有两个值时,可以向X、Y两个方向平移,不过是斜着移动*/

 transform: skewX(45deg);/*skew 是斜切,可以向X、Y两个方向斜切*/

 transform: skewY(45deg);

 transform: skew(45deg,45deg);/*skew 有两个值时,代表分别沿向X、Y两个方向斜切*/

 transform: scale(0.5);/*scale 是缩放,scale也有X、Y两个缩放方向*/

transform-origin: top left;

transform-origin: 10px 10px;/*transform-origin 是改变基点,以某一点为基点进行旋转,缩放

 值可以是top left,也可以是10px 10px这样的值,也可以是百分比*/

可以用如下代码做一些测试:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

</head>

<style>

    *{

        margin: 0;

        padding: 0;

    }

    html{

        height: 100%;

    }

    body{

        width: 60%;

        height: 60%;

        border: 1px solid;

        margin: 100px auto;

    }

    .test{

        width: 100px;

        height: 100px;

        border: 1px solid;

        border-radius: 50%;

        background-color: pink;

        margin: 200px auto;

        font: 30px/100px "微软雅黑";

        text-align: center;

        transform-origin: top left;/*transform-origin 是改变基点,以某一点为基点进行旋转,缩放

        值可以是top left,也可以是10px 10px这样的值,也可以是百分比*/

        transform-origin: 10px 10px;

    }

    body:hover .test{

        transform: rotate(270deg);  /*rotate 是旋转,rotate(270deg)是旋转270度*/

        transform: translateX(300px);/*translate 是平移,可以向X、Y两个方向平移*/

        transform: translateY(200px);

        transform: translate(300px,300px);/*translate 有两个值时,可以向X、Y两个方向平移,不过是斜着移动*/

        transform: skewX(45deg);/*skew 是斜切,可以向X、Y两个方向斜切*/

        transform: skewY(45deg);

        transform: skew(45deg,45deg);/*skew 有两个值时,代表分别沿向X、Y两个方向斜切*/

        transform: scale(0.5);/*scale 是缩放,scale也有X、Y两个缩放方向*/

    }

</style>

<body> 

        <div class="test">

            老虎

        </div>

</body>

</html>

transform的相互组合:

如图:有两个相同大小格式的div,分别名为test1、test2,给这两个元素设置transform效果,分别为:transform: translateX(100px) scale(2);和transform: scale(2) translateX(100px);

出来的偏移效果却是不一样的。效果如图:

这是因为transform的rotate、scale、translate等都是以矩阵为原理计算的,所以在相互组合时,矩阵不满足交换律,所以偏移效果会出现不同。而且test1、test2在水平方向的偏移都不是100px,具体偏移量是根据translate*scale结果来算的,而且这种组合时从右向左顺序来计算的。transform: translateX(100px) scale(2)在计算偏移量是是按照scale(2)*translate(100px)的矩阵来算结果的。

相关文章

  • 6_动画_其他属性

    2D、3D变形动画 transform:2D变形:复合属性 通过 CSS3 转换,我们能够对元素进行移动、缩放、转...

  • 2019-06-11

    CSS3 2d变换 3d变换 css3 2d变换 111111 222222

  • Tailwind Transform

    CSS3中transform(变形)属性用于设置元素在2D或3D上的旋转、缩放、移动和倾斜 坐标系 transfo...

  • CSS3 Transform变形(3D转换)

    CSS3 3D 转换 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换的功...

  • 网易云课堂前端学习-css-变形-transform

    变形包括2d变形和3d变形 transform2D变形 transform(none| +),可以写多个方法一起但...

  • CSS3 转换(1):2D

    知识点:CSS3 TransformCSS3 2D转换CSS3 3D转换CSS3 Transform与坐标系统CS...

  • css动画

    css3动画 过渡:transition 2D 转换 transform 3D 转换 transform 动画:a...

  • CSS3动画

    CSS3之2D/3D动画 2D的变换3D的变换动画 2D动画的变换 基本说明 注意:一般要写不同浏览器的适配 移动...

  • css 动画总结

    一、2D、3D 转换 (transform) 让元素在一个坐标系统中变形 2D转换 translate(x,y) ...

  • CSS3的3D变换

    CSS3 变换也叫 2D/3D转换,主要包括以下几种: 旋转 ( rotate ) 、 扭曲 ( skew ) 、...

网友评论

      本文标题:css3 2D、3D变形

      本文链接:https://www.haomeiwen.com/subject/fnsvthtx.html