美文网首页
13-CSS转换模块

13-CSS转换模块

作者: 喝酸奶要舔盖__ | 来源:发表于2018-10-29 16:11 被阅读0次

    2D转换模块

    • transform: translate(50px,50px);平移属性
      • 平移属性,第一个参数代表水平,第二个参数代表垂直方向只写一个参数代表水平方向
    • transform: rotate(45deg);旋转属性
      • 注意点: 旋转属性需要加上度数单位deg
    • transform: scale(1,0.5);缩放属性
      • 第一个参数:水平方向
        第二个参数:垂直方向
      • 注意点:
        如果取值是1, 代表不变
        如果取值大于1, 代表需要放大
        如果取值小于1, 代表需要缩小
        如果水平和垂直缩放都一样, 那么可以简写为一个参数

    注意点:
    1.如果需要进行多个转换, 那么用空格隔开
    2.2D的转换模块会修改元素的坐标系, 所以旋转之后再平移就不是水平平移的
    transform: translate(50px) rotate(45deg) scale(2);


    2D转换形变中心点

    • 通过设置transform-origin属性来修改形变中心点
    • 默认情况下所有的元素都是以自己的中心点作为参考来旋转的/缩放, 我们可以通过形变中心点属性来修改它的参考点
    • transform-origin属性取值
      • 第一个参数:水平方向
        第二个参数:垂直方向
      • 取值有三种形式
        具体像素
        百分比
        特殊关键字
    transform-origin: 30px 30px;
    transform-origin: 50% 30%;
    transform-origin: bottom right;
    

    3D转换模块

    • 什么是2D和3D
      2D就是一个平面, 只有宽度和高度, 没有厚度
      3D就是一个立体, 有宽度和高度, 还有厚度
      默认情况下所有的元素都是呈2D展现的

    • 如何让某个元素呈3D展现
      和透视一样, 想看到某个元素的3d效果, 只需要给他的父元素添加一个transform-style属性, 然后设置为preserve-3d即可

    注意点:
    transform-style: preserve-3d 需要给父元素添加

    <style>
            *{
                margin: 0;
                padding: 0;
            }
            .father {
                width: 200px;
                height: 200px;
                background-color: red;
                border: 1px solid #000;
                margin: 100px auto;
                perspective: 500px;
                transform-style: preserve-3d;
                transform: rotateY(0deg);
    
            }
    
            .son{
                width: 100px;
                height: 100px;
                background-color: blue;
                border: 1px solid #000;
                margin: 0 auto;
                margin-top: 50px;
                transform: rotateY(45deg);
            }
        </style>
    <div class="father">
        <div class="son"></div>
    </div>
    
    • 3D立方体
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            *{
                margin: 0;
                padding: 0;
    
            }
    
            ul{
                width: 200px;
                height: 200px;
                border: 1px solid #000;
                box-sizing: border-box;
                margin: 100px auto;
                position: relative;
                transform: rotateX(0deg) rotateY(0deg);
                transform-style: preserve-3d;
                animation: sport 8s alternate linear;
                perspective: 500px;
            }
    
            ul li{
                list-style: none;
                width: 200px;
                height: 200px;
                font-size: 60px;
                text-align: center;
                line-height: 200px;
                position: absolute;
                left: 0;
                top: 0;
            }
    
            ul li:nth-child(1){
                background-color: red;
                transform: translateX(-50%) rotateY(90deg);
    
            }
    
            ul li:nth-child(2){
                background-color: yellow;
                transform: translateX(50%) rotateY(90deg);
    
            }
            ul li:nth-child(3){
                background-color: green;
                transform: translateY(-50%) rotateX(90deg);
    
            }
            ul li:nth-child(4){
                background-color: blueviolet;
                transform: translateY(50%) rotateX(270deg);
    
            }
            ul li:nth-child(5){
                background-color: blue;
                transform: translateZ(-100px) rotateX(180deg);
    
            }
            ul li:nth-child(6){
                background-color: pink;
                transform: translateZ(100px);
    
            }
    
            @keyframes sport {
                from{
                    transform: rotateX(0deg);
                }
    
                to{
                    transform: rotateX(360deg);
                }
            }
    
    
        </style>
    </head>
    <body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
    </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:13-CSS转换模块

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