zoukankan      html  css  js  c++  java
  • CSS3画菱形和平行四边形以及立方体

    利用CSS3中的transform属性画菱形和平行四边形

    transform 实现2D或是3D的变形转换,通过transform可以实现对元素的四种变换:旋转、缩放、移动、倾斜

    一、菱形

    菱形的特点:菱形的四条边相等,可以理解为正方形的一种,所以分析可以通过正方形的旋转得到菱形

    transform:rotate(45deg);  将正方形旋转45deg   

    注意:transform属性并不是所有的浏览器都可以支持的,为了兼容不支持transform属性的浏览器,所以要使用厂商前缀。添加厂商前缀的快捷方式:transform  后 tab键。即可自动生成带有厂商前缀的。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>transform</title>
        <style>
        .diamond{
            width:200px;height:200px;
            background: #faa;
            margin:50px auto;
            -webkit-transform:rotate(45deg) ;  //Webkit / Safari / Chrome
            -moz-transform:rotate(45deg) ;  //Firefox
            -ms-transform:rotate(45deg) ;  //Internet Explorer
            -o-transform:rotate(45deg) ;  //Opera
            transform:rotate(45deg) ;
        }
        </style>
    </head>
    <body>
        <div class="diamond"></div>
    </body>
    </html>

    实现效果


    二、平行四边形

    运用了transform属性中的skew值,定义了元素倾斜度数。沿着X轴和Y轴的2D倾斜转换,X轴倾斜20deg,Y轴倾斜20deg

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>transform</title>
        <style>
        .prallel{
            width:200px;
            height:100px;
            background: #faa;
            margin:100px auto;
            -webkit-transform: skew(20deg,20deg);
            -ms-transform: skew(20deg,20deg);
            -o-transform: skew(20deg,20deg);
            transform: skew( 20deg,20deg);
        }
        </style>
    </head>
    <body>
        <div class="prallel"></div>
    </body>
    </html>

    表现效果:


    三、立方体

       在这个例子中是通过设置三个div元素来制作立方体的三个面

    第一个div盒子#box1 默认的是块元素,所以独占一行,占据上面一行;第二个盒子#box2 和第三个盒子 #box3,将其设置为 display:inline-block 行内块元素,所以既可以共同存在于一行,又可以设置宽高。

    注意:行内块元素因为页面排版会出现空白间距问题设置  font-size:0; 解决。详情查看博客https://www.cnblogs.com/nyw1983/p/11626975.html

    运用了transform属性中的skew值,定义了元素倾斜度数。沿着X轴和Y轴的2D倾斜转换,

    box1 在X轴倾斜 -45deg,Y轴倾斜 0deg;

    box3 在X轴倾斜 0deg,Y轴倾斜 -45deg

    transform:translate(x,y);   基于原来的位置,沿X轴平移,长度为x,沿Y轴平移,长度为y
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>立方体</title>
        <style>
        #box2{
            width:240px;  
            height:240px;
            background-color:#aaf;
            display:inline-block;
    
        }
        #box1{
            width:240px;
            height:60px;
            transform:skew(-45deg,0deg) translate(30px,0px);
            background-color: #eef;
        }
        #box3{
            width:60px;
            height:240px;
            background: #ddf;
            display:inline-block;
            transform:skew(0deg,-45deg) translate(0,-30px);
        }
        </style>
    </head>
    <body>
    <div style="font-size:0px">
    <div id="box1">1</div>
    <div id="box2">2</div>
    <div id="box3">3</div>
    </div>
    
    </body>
    </html>

    表现效果

  • 相关阅读:
    leetcode Convert Sorted List to Binary Search Tree
    leetcode Convert Sorted Array to Binary Search Tree
    leetcode Binary Tree Level Order Traversal II
    leetcode Construct Binary Tree from Preorder and Inorder Traversal
    leetcode[105] Construct Binary Tree from Inorder and Postorder Traversal
    证明中序遍历O(n)
    leetcode Maximum Depth of Binary Tree
    限制 button 在 3 秒内不可重复点击
    HTML 和 CSS 画三角形和画多边行基本原理及实践
    在线前端 JS 或 HTML 或 CSS 编写 Demo 处 JSbin 与 jsFiddle 比较
  • 原文地址:https://www.cnblogs.com/nyw1983/p/11618873.html
Copyright © 2011-2022 走看看