CSS3-2D转换

一、translate移动

 

1、语法:

transform:translate(x,y)

transform:translateX(n)

transform:translateY(n)

2、重点:

1)translate最大的优点是不会影响到其他元素的位置

2)translate中的百分比单位是相对于自身元素的translate(50%,50%)

3)对行内标签没有效果

二、rotate旋转

1、语法:

transform:rotate(度数)

2、重点:

1)rotate里面跟度数,单位是deg。如rotate(45deg)

2)角度为正时,顺时针,为负时,逆时针。

3)默认旋转的中心点是元素的中心点。

<!DOCTYPE html>
<html>

<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>
    <style>
        div {
            position: relative;
            width: 249px;
            height: 35px;
            border: 1px solid #000;
        }
        
        div::after {
            content: "";
            position: absolute;
            top: 8px;
            right: 15px;
            width: 10px;
            height: 10px;
            border-right: 1px solid #000;
            border-bottom: 1px solid #000;
            transform: rotate(45deg);
            transition: all 0.6s;
        }
        /* 鼠标经过div 里面的三角旋转 */
        
        div:hover::after {
            transform: rotate(225deg);
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

显示效果:

三、transform-origin 设置转换的中心点

1、语法: 

transform-origin:x y; 

2、重点:

1)后面的参数x和y用空格隔开

2)x y默认转换的中心点是元素的中心点(50% 50%)

3)还可以给x y设置像素或方位名词(top、bottom、left、right、center)

<!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>
    <style>
        div {
            overflow: hidden;
            width: 200px;
            height: 200px;
            border: 1px solid pink;
            margin: 100px auto;
        }
        
        div::before {
            content: "张韶涵";
            display: block;
            width: 100%;
            height: 100%;
            background-color: hotpink;
            transform: rotate(180deg);
            transform-origin: left bottom;
            transition: all 1s;
        }
        /*鼠标经过div 里面的before复原*/
        div:hover::before {
            transform: rotate(0);
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

四、scale缩放

1、语法:

transform:scale(x,y)

2、注意点:

1)x和y用逗号分隔,x和y是数字不跟单位,倍数的意思,1就是1倍 2就是2倍

2)transform:scale(1,1):宽和高都放大一倍,相当于没有放大

3)transform:scale(2,2):宽和高都放大2倍

4)transform:scale(2):只写一个参数相当于等比例缩放,第二个参数则和第一个参数一样,相当于scale(2,2)

5)transform:scale(0.5,0.5):缩小

6)scale缩放最大的优势是可以设置转换中心点缩放,默认以中心点缩放,不影响其他盒子

<!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>
    <style>
        li {
            float: left;
            width: 30px;
            height: 30px;
            margin: 10px;
            border: 1px solid pink;
            line-height: 30px;
            text-align: center;
            list-style: none;
            border-radius: 50%;
            cursor: pointer;
            transition: all .4s;
        }
        
        li:hover {
            transform: scale(1.2);
        }
    </style>
</head>

<body>
    <ul>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
        </ul>
    </ul>
</body>

</html>

五、2D转换综合写法

1)同时使用多个转换,其格式为:transform:translate() rotate() scale()...等

2)其顺序会影响转换的效果。(先旋转会改变坐标轴方向)

3)当我们同时有位移和其他属性的时候,记得要将位移放到最前边。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值