CSS3的2D图形变形方法

移动

translate(x,y)

该方法可用于在页面上平移元素,参数x指代水平方向,y指代竖直方向。

语法:

<style>
    p{
        transfrom:translate(10px,20px);
        /* 将p标签向右移动10px,向下移动20px */
    }
</style>

参数y可以省略,如果省略则代表竖直方向上偏移量为0。

如:

<style>
    p{
        transform: translate(30px);
        /* 省略了竖直方向上的参数---竖直方向上平移距离为0px */
        /* 将p标签元素向右平移30px */
    }
</style>

translateX(x)

该方法用于水平方向上的平移

translateY(y)

该方法用于竖直方向上的平移

实例:

<!DOCTYPE html>
<html>
​
<head>
    <meta charset="utf-8">
    <title>CSS3 2D移动效果</title>
    <style>
        div {
            width: 50px;
            height: 40px;
            margin: 20px;
            border: 1px solid;
            display: inline-block;
            /* 将块级元素转为行内块元素,一行可以放置多个div */
            text-align: center;
            padding: 20px;
            background-image: url(image/caidog.png);
            /* 设置背景图片 */
            background-size: 100%;
            /* 设置背景图片大小 */
        }
        /* translate() */
        
        div.change1 {
            transform: translate(70px, -30px);
        }
        /* translateX() */
        
        div.change2 {
            transform: translateX(100px);
            /* 上面的语句等价于 transform:translate(100px); */
        }
        /* translateY() */
        
        div.change3 {
            transform: translateY(40px);
        }
    </style>
</head>
​
<body>
    <h3>CSS3 2D移动效果</h3>
    <h4>参照系没有移动</h4>
    <div>原图</div>
    <div>变化后</div>
    <hr>
​
    <h4>向右移动了70像素,向上移动了30像素</h4>
    <div>原图</div>
    <div class="change1">变化后</div>
    <hr>
​
    <h4>向右移动了像素</h4>
    <div>原图</div>
    <div class="change2">变化后</div>
    <hr>
​
    <h4>向下移动了40像素</h4>
    <div>原图</div>
    <div class="change3">变化后</div>
</body>
​
</html>

效果图:

旋转

rotate(<angle>)

该方法可用于在页面上旋转元素。参数<angle>代表旋转的角度,角度为正则顺时针旋转;角度为负则逆时针旋转。

语法:

<style>
    p {
        transform: rotate(30deg);
        /* 将p标签顺时针旋转30度 */
    }
</style>
<style>
    p {
        transform: rotate(-30deg);
        /* 将p标签逆时针旋转30度 */
    }
</style>

实例:

<!DOCTYPE html>
<html>
​
<head>
    <meta charset="utf-8">
    <title>CSS3 2D旋转效果----rotate</title>
    <style>
        div {
            width: 50px;
            height: 40px;
            margin: 10px 30px;
            /* 设置外边距 */
            border: 1px solid;
            /* 设置边框粗细 */
            display: inline-block;
            /* 将块级元素转变为行内块元素 */
            text-align: center;
            /* 文本居中显示 */
            padding: 20px;
            /* 设置内边距 */
            background-image: url(image/caidog.png);
            /* 设置背景图片 */
            background-size: 100%;
            /* 设置背景图片大小 */
        }
        /* rotate() */
        
        div.change1 {
            transform: rotate(30deg);
            /* 顺时针旋转30度 */
        }
        
        div.change2 {
            transform: rotate(-20deg);
            /* 逆时针旋转20度 */
        }
    </style>
</head>
​
<body>
    <h3>CSS3 2D旋转效果</h3>
    <h4>参照系没有移动</h4>
    <div>原图</div>
    <div>变化后</div>
    <hr>
​
    <h4>顺时针旋转20度</h4>
    <div>原图</div>
    <div class="change1">变化后</div>
    <hr>
​
    <h4>逆时针旋转20度</h4>
    <div>原图</div>
    <div class="change2">变化后</div>
</body>
​
</html>

效果图:

缩放

scale(x,y)

该方法由于在页面上放大或缩小元素。参数x,y代表放大或缩小的倍数。x,y 可以取整数或者浮点数,若参数小于1则代表缩小。

语法:

<style>
    p {
        transform: scale(2, 3);
        /* 将p标签的宽度变为原来的2倍。高度变为原来的3倍 */
    }
</style>

如果参数y省略,则默认y轴上的缩放倍数与x相同。

<style>
    p {
        transform: scale(2);
        /* 将p标签的宽度高度均变为原来的2倍 */
    }
</style>

scaleX(x)

指定x方向(水平方向)上的缩放

scaleY(y)

指定y方向(竖直方向)上的缩放

实例:

<!DOCTYPE html>
<html>
​
<head>
    <meta charset="utf-8">
    <title>CSS3 2D缩放效果</title>
    <style>
        div {
            width: 50px;
            height: 40px;
            margin: 10px 30px;
            border: 1px solid;
            display: inline-block;
            text-align: center;
            padding: 20px;
            background-image: url(image/caidog.png);
            background-size: 100%;
        }
        /* scale() */
        
        div.change1 {
            transform: scale(0.6, 0.5);
        }
        /* scaleX() */
        
        div.change2 {
            transform: scaleX(1.3);
        }
        /* scaleY() */
        
        div.change3 {
            transform: scaleY(2.4);
        }
    </style>
</head>
​
<body>
    <h3>CSS3 2D缩放效果----scale</h3>
    <h4>参照系没有缩放</h4>
    <div>原图</div>
    <div>变化后</div>
    <hr>
​
    <h4>宽度缩小到原来的0.6倍,高度缩小到原来的0.5倍</h4>
    <div>原图</div>
    <div class="change1">变化后</div>
    <hr>
​
    <h4>宽度放大到原来的1.3倍</h4>
    <div>原图</div>
    <div class="change2">变化后</div>
    <hr>
​
    <h4>高度放大到原来的2.4倍</h4>
    <div>原图</div>
    <div class="change3">变化后</div>
</body>
​
</html>

效果图:

翻转

skew(<angleX>,<angleY>)

该方法用于页面元素的翻转。参数<angleX>代表水平方向x轴上的倾斜扭曲角度;<angleY>代表竖直方向y轴上的倾斜扭曲角度。

语法:

<style>
    p{
        transform: skew(30deg,20deg);
        /* 将p标签横向倾斜30度,纵向倾斜20度 */
    }
</style>

参数<angleY>可以省略。如果省略,则默认为0。

如:

<style>
    p {
        transform: skew(30deg);
        /* 将p标签横向倾斜30度,纵向不倾斜 */
    }
</style>

scaleX(x)

该方法用于水平方向上的倾斜

scaleY(y)

该方法用于竖直方向上的倾斜

实例:

<!DOCTYPE html>
<html>
​
<head>
    <meta charset="utf-8">
    <title>CSS3 2D翻转效果</title>
    <style>
        div {
            width: 50px;
            height: 40px;
            margin: 10px 30px;
            border: 1px solid;
            display: inline-block;
            text-align: center;
            padding: 20px;
            background-image: url(image/caidog.png);
            background-size: 100%;
        }
        /* skew() */
        
        div.change1 {
            transform: skew(45deg, 15deg);
        }
        /* skewX() */
        
        div.change2 {
            transform: skewX(35deg);
        }
        /* skewY() */
        
        div.change3 {
            transform: skewY(30deg);
        }
    </style>
</head>
​
<body>
    <h3>CSS3 2D翻转效果----skew</h3>
    <h4>参照系没有移动</h4>
    <div>原图</div>
    <div>变化后</div>
    <hr>
​
    <h4>x轴方向倾斜45度,y轴方向倾斜15度</h4>
    <div>原图</div>
    <div class="change1">变化后</div>
    <hr>
​
    <h4>x轴方向倾斜35度</h4>
    <div>原图</div>
    <div class="change2">变化后</div>
    <hr>
​
    <h4>y轴方向倾斜30度</h4>
    <div>原图</div>
    <div class="change3">变化后</div>
</body>
​
</html>

效果图:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值