zoukankan      html  css  js  c++  java
  • 【收藏】纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)

    图形包括基本的矩形、圆形、椭圆、三角形、多边形,也包括稍微复杂一点的爱心、钻石、阴阳八卦等。当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome,当然IE也能看一部分的。那好,下面就一起来看看我们是如何用纯CSS来画这些图形的,如果你也觉得很震撼,推荐给你的朋友吧。

    1、正方形

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #square { 
    100px; 
    height: 100px; 
    background: red; 

    2、长方形

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #rectangle { 
    200px; 
    height: 100px; 
    background: red; 

    3、圆形

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #circle { 
    100px; 
    height: 100px; 
    background: red; 
    -moz-border-radius: 50px; 
    -webkit-border-radius: 50px; 
    border-radius: 50px; 

    4、椭圆

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #oval { 
    200px; 
    height: 100px; 
    background: red; 
    -moz-border-radius: 100px / 50px; 
    -webkit-border-radius: 100px / 50px; 
    border-radius: 100px / 50px; 

    5、上三角

     

    最终效果:

     

     

     

     

    CSS代码如下:


    复制代码
    代码如下:

    #triangle-up { 
    0; 
    height: 0; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    border-bottom: 100px solid red; 

    6、下三角

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #triangle-down { 
    0; 
    height: 0; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    border-top: 100px solid red; 

    7、左三角

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #triangle-left { 
    0; 
    height: 0; 
    border-top: 50px solid transparent; 
    border-right: 100px solid red; 
    border-bottom: 50px solid transparent; 

    8、右三角

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #triangle-right { 
    0; 
    height: 0; 
    border-top: 50px solid transparent; 
    border-left: 100px solid red; 
    border-bottom: 50px solid transparent; 

    9、左上三角

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #triangle-topleft { 
    0; 
    height: 0; 
    border-top: 100px solid red; 
    border-right: 100px solid transparent; 

    10、右上三角

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #triangle-topright { 
    0; 
    height: 0; 
    border-top: 100px solid red; 
    border-left: 100px solid transparent; 

    11、左下三角

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #triangle-bottomleft { 
    0; 
    height: 0; 
    border-bottom: 100px solid red; 
    border-right: 100px solid transparent; 

    12、右下三角

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #triangle-bottomright { 
    0; 
    height: 0; 
    border-bottom: 100px solid red; 
    border-left: 100px solid transparent; 

    13、平行四边形

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #parallelogram { 
    150px; 
    height: 100px; 
    margin-left:20px; 
    -webkit-transform: skew(20deg); 
    -moz-transform: skew(20deg); 
    -o-transform: skew(20deg); 
    background: red; 

    14、梯形

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #trapezoid { 
    border-bottom: 100px solid red; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    height: 0; 
    100px; 

    15、六角星

     

    最终效果: 

     

     

     CSS代码如下:


    复制代码
    代码如下:

    #star-six { 
    0; 
    height: 0; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    border-bottom: 100px solid red; 
    position: relative; 

    #star-six:after { 
    0; 
    height: 0; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    border-top: 100px solid red; 
    position: absolute; 
    content: ""; 
    top: 30px; 
    left: -50px; 

    16、五角星

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #star-five { 
    margin: 50px 0; 
    position: relative; 
    display: block; 
    color: red; 
    0px; 
    height: 0px; 
    border-right: 100px solid transparent; 
    border-bottom: 70px solid red; 
    border-left: 100px solid transparent; 
    -moz-transform: rotate(35deg); 
    -webkit-transform: rotate(35deg); 
    -ms-transform: rotate(35deg); 
    -o-transform: rotate(35deg); 

    #star-five:before { 
    border-bottom: 80px solid red; 
    border-left: 30px solid transparent; 
    border-right: 30px solid transparent; 
    position: absolute; 
    height: 0; 
    0; 
    top: -45px; 
    left: -65px; 
    display: block; 
    content: ''; 
    -webkit-transform: rotate(-35deg); 
    -moz-transform: rotate(-35deg); 
    -ms-transform: rotate(-35deg); 
    -o-transform: rotate(-35deg); 

    #star-five:after { 
    position: absolute; 
    display: block; 
    color: red; 
    top: 3px; 
    left: -105px; 
    0px; 
    height: 0px; 
    border-right: 100px solid transparent; 
    border-bottom: 70px solid red; 
    border-left: 100px solid transparent; 
    -webkit-transform: rotate(-70deg); 
    -moz-transform: rotate(-70deg); 
    -ms-transform: rotate(-70deg); 
    -o-transform: rotate(-70deg); 
    content: ''; 

    17、五角大楼

     

    最终效果:

     

     

     CSS代码如下:


    复制代码
    代码如下:

    #pentagon { 
    position: relative; 
    54px; 
    border- 50px 18px 0; 
    border-style: solid; 
    border-color: red transparent; 

    #pentagon:before { 
    content: ""; 
    position: absolute; 
    height: 0; 
    0; 
    top: -85px; 
    left: -18px; 
    border- 0 45px 35px; 
    border-style: solid; 
    border-color: transparent transparent red; 

    18、六边形

     

    最终效果:

     

     

     CSS代码如下:


    复制代码
    代码如下:

    #hexagon { 
    100px; 
    height: 55px; 
    background: red; 
    position: relative; 

    #hexagon:before { 
    content: ""; 
    position: absolute; 
    top: -25px; 
    left: 0; 
    0; 
    height: 0; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    border-bottom: 25px solid red; 

    #hexagon:after { 
    content: ""; 
    position: absolute; 
    bottom: -25px; 
    left: 0; 
    0; 
    height: 0; 
    border-left: 50px solid transparent; 
    border-right: 50px solid transparent; 
    border-top: 25px solid red; 

    19、八角形

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #octagon { 
    100px; 
    height: 100px; 
    background: red; 
    position: relative; 

    #octagon:before { 
    content: ""; 
    position: absolute; 
    top: 0; 
    left: 0; 
    border-bottom: 29px solid red; 
    border-left: 29px solid #eee; 
    border-right: 29px solid #eee; 
    42px; 
    height: 0; 

    #octagon:after { 
    content: ""; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    border-top: 29px solid red; 
    border-left: 29px solid #eee; 
    border-right: 29px solid #eee; 
    42px; 
    height: 0; 

    20、爱心

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #heart { 
    position: relative; 
    100px; 
    height: 90px; 

    #heart:before, 
    #heart:after { 
    position: absolute; 
    content: ""; 
    left: 50px; 
    top: 0; 
    50px; 
    height: 80px; 
    background: red; 
    -moz-border-radius: 50px 50px 0 0; 
    border-radius: 50px 50px 0 0; 
    -webkit-transform: rotate(-45deg); 
    -moz-transform: rotate(-45deg); 
    -ms-transform: rotate(-45deg); 
    -o-transform: rotate(-45deg); 
    transform: rotate(-45deg); 
    -webkit-transform-origin: 0 100%; 
    -moz-transform-origin: 0 100%; 
    -ms-transform-origin: 0 100%; 
    -o-transform-origin: 0 100%; 
    transform-origin: 0 100%; 

    #heart:after { 
    left: 0; 
    -webkit-transform: rotate(45deg); 
    -moz-transform: rotate(45deg); 
    -ms-transform: rotate(45deg); 
    -o-transform: rotate(45deg); 
    transform: rotate(45deg); 
    -webkit-transform-origin: 100% 100%; 
    -moz-transform-origin: 100% 100%; 
    -ms-transform-origin: 100% 100%; 
    -o-transform-origin: 100% 100%; 
    transform-origin :100% 100%; 

    21、无穷大符号

     

    最终效果:

     

     

     

     

    CSS代码如下:


    复制代码
    代码如下:

    #infinity { 
    position: relative; 
    212px; 
    height: 100px; 

    #infinity:before, 
    #infinity:after { 
    content: ""; 
    position: absolute; 
    top: 0; 
    left: 0; 
    60px; 
    height: 60px; 
    border: 20px solid red; 
    -moz-border-radius: 50px 50px 0 50px; 
    border-radius: 50px 50px 0 50px; 
    -webkit-transform: rotate(-45deg); 
    -moz-transform: rotate(-45deg); 
    -ms-transform: rotate(-45deg); 
    -o-transform: rotate(-45deg); 
    transform: rotate(-45deg); 

    #infinity:after { 
    left: auto; 
    right: 0; 
    -moz-border-radius: 50px 50px 50px 0; 
    border-radius: 50px 50px 50px 0; 
    -webkit-transform: rotate(45deg); 
    -moz-transform: rotate(45deg); 
    -ms-transform: rotate(45deg); 
    -o-transform: rotate(45deg); 
    transform: rotate(45deg); 

    22、鸡蛋

     

    最终效果 

     

     CSS代码如下:


    复制代码
    代码如下:

    #egg { 
    display:block; 
    126px; 
    height: 180px; 
    background-color: red; 
    -webkit-border-radius: 63px 63px 63px 63px / 108px 108px 72px 72px; 
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; 

    23、食逗人(Pac-Man)

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #pacman { 
    0px; 
    height: 0px; 
    border-right: 60px solid transparent; 
    border-top: 60px solid red; 
    border-left: 60px solid red; 
    border-bottom: 60px solid red; 
    border-top-left-radius: 60px; 
    border-top-right-radius: 60px; 
    border-bottom-left-radius: 60px; 
    border-bottom-right-radius: 60px; 

    24、提示对话框

     

    最终效果:

     

     

     

     

    CSS代码如下:


    复制代码
    代码如下:

    #talkbubble { 
    120px; 
    height: 80px; 
    background: red; 
    position: relative; 
    -moz-border-radius: 10px; 
    -webkit-border-radius: 10px; 
    border-radius: 10px; 

    #talkbubble:before { 
    content:""; 
    position: absolute; 
    right: 100%; 
    top: 26px; 
    0; 
    height: 0; 
    border-top: 13px solid transparent; 
    border-right: 26px solid red; 
    border-bottom: 13px solid transparent; 

    25、12角星

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #burst-12 { 
    background: red; 
    80px; 
    height: 80px; 
    position: relative; 
    text-align: center; 

    #burst-12:before, #burst-12:after { 
    content: ""; 
    position: absolute; 
    top: 0; 
    left: 0; 
    height: 80px; 
    80px; 
    background: red; 

    #burst-12:before { 
    -webkit-transform: rotate(30deg); 
    -moz-transform: rotate(30deg); 
    -ms-transform: rotate(30deg); 
    -o-transform: rotate(30deg); 
    transform: rotate(30deg); 

    #burst-12:after { 
    -webkit-transform: rotate(60deg); 
    -moz-transform: rotate(60deg); 
    -ms-transform: rotate(60deg); 
    -o-transform: rotate(60deg); 
    transform: rotate(60deg); 

    26、8角星

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #burst-8 { 
    background: red; 
    80px; 
    height: 80px; 
    position: relative; 
    text-align: center; 
    -webkit-transform: rotate(20deg); 
    -moz-transform: rotate(20deg); 
    -ms-transform: rotate(20deg); 
    -o-transform: rotate(20eg); 
    transform: rotate(20deg); 

    #burst-8:before { 
    content: ""; 
    position: absolute; 
    top: 0; 
    left: 0; 
    height: 80px; 
    80px; 
    background: red; 
    -webkit-transform: rotate(135deg); 
    -moz-transform: rotate(135deg); 
    -ms-transform: rotate(135deg); 
    -o-transform: rotate(135deg); 
    transform: rotate(135deg); 

    27、钻石

     

    最终效果: 

     

     CSS代码如下:


    复制代码
    代码如下:

    #cut-diamond { 
    border-style: solid; 
    border-color: transparent transparent red transparent; 
    border- 0 25px 25px 25px; 
    height: 0; 
    50px; 
    position: relative; 
    margin: 20px 0 50px 0; 

    #cut-diamond:after { 
    content: ""; 
    position: absolute; 
    top: 25px; 
    left: -25px; 
    0; 
    height: 0; 
    border-style: solid; 
    border-color: red transparent transparent transparent; 
    border- 70px 50px 0 50px; 

    28、阴阳八卦(霸气的这个)

     

     

     

     

     

    CSS代码如下:


    复制代码
    代码如下:

    #yin-yang { 
    96px; 
    height: 48px; 
    background: #eee; 
    border-color: red; 
    border-style: solid; 
    border- 2px 2px 50px 2px; 
    border-radius: 100%; 
    position: relative; 

    #yin-yang:before { 
    content: ""; 
    position: absolute; 
    top: 50%; 
    left: 0; 
    background: #eee; 
    border: 18px solid red; 
    border-radius: 100%; 
    12px; 
    height: 12px; 

    #yin-yang:after { 
    content: ""; 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    background: red; 
    border: 18px solid #eee; 
    border-radius:100%; 
    12px; 
    height: 12px; 

    好了,就到这里了,一共28个,个人觉得后面几个比较犀利。这些代码的来源是css-tricks。

  • 相关阅读:
    js检测对象是否是数组的三种方法
    mongdb查询数据并且返回数据条数
    mongdb数据库的操作
    NodeJs运行服务器-day01
    html5新增的定时器requestAnimationFrame
    vue 中scroll事件不触发问题
    Node.js快速生成26个字母
    Node.js fs文件系统模块
    Node.js 创建server服务器
    JavaScript exec()方法
  • 原文地址:https://www.cnblogs.com/cfsxgogogo/p/8579494.html
Copyright © 2011-2022 走看看