• 教你只用CSS画基本图形(圆形、三角形、多边形、爱心、八卦图)


    在css-tricks上有一篇文章,居然能只用CSS画出这么多基本的图形。图形包括基本的矩形、圆形、椭圆、三角形、多边形,也包括稍微复杂一点的爱心、钻石、阴阳八卦等。当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome,当然IE也能看一部分的。矩形就不列举了,三角形和圆形以后用的地方比较多,看看CSS是怎么做到的:

    IE6兼容处理方法:

    _border-color:tomato; _filter:chroma(color=tomato);

     
    1、圆形

    最终效果:

     

    CSS代码如下:

    #circle {
    width
    : 100px;
    height
    : 100px;
    background
    : red;
    -moz-border-radius
    : 50px;
    -webkit-border-radius
    : 50px;
    border-radius
    : 50px;
    }
     
     
    4、椭圆

    最终效果:

     

    CSS代码如下:

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


    5、上三角

    最终效果:

     

    CSS代码如下:

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


    6、下三角

    最终效果:

     

    CSS代码如下:

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


    7、左三角

    最终效果:

     

    CSS代码如下:

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


    8、右三角

    最终效果:

     

    CSS代码如下:

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


    9、左上三角

    最终效果:

     

    CSS代码如下:

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


    10、右上三角

    最终效果:

     

    CSS代码如下:

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

    }


    11、左下三角

    最终效果:

     

    CSS代码如下:

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


    12、右下三角

    最终效果:

     

    CSS代码如下:

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


    13、平行四边形

    最终效果:

     

    CSS代码如下:

    #parallelogram {
    width
    : 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;
    width
    : 100px;
    }


    15、六角星

    最终效果:

     

    CSS代码如下:

    #star-six {
    width
    : 0;
    height
    : 0;
    border-left
    : 50px solid transparent;
    border-right
    : 50px solid transparent;
    border-bottom
    : 100px solid red;
    position
    : relative;
    }
    #star-six:after
    {
    width
    : 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;
    width
    : 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;
    width
    : 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;
    width
    : 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;
    width
    : 54px;
    border-width
    : 50px 18px 0;
    border-style
    : solid;
    border-color
    : red transparent;
    }
    #pentagon:before
    {
    content
    : "";
    position
    : absolute;
    height
    : 0;
    width
    : 0;
    top
    : -85px;
    left
    : -18px;
    border-width
    : 0 45px 35px;
    border-style
    : solid;
    border-color
    : transparent transparent red;
    }


    18、六边形

    最终效果:

     

    CSS代码如下:

    #hexagon {
    width
    : 100px;
    height
    : 55px;
    background
    : red;
    position
    : relative;
    }
    #hexagon:before
    {
    content
    : "";
    position
    : absolute;
    top
    : -25px;
    left
    : 0;
    width
    : 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;
    width
    : 0;
    height
    : 0;
    border-left
    : 50px solid transparent;
    border-right
    : 50px solid transparent;
    border-top
    : 25px solid red;
    }


    19、八角形

    最终效果:

     

    CSS代码如下:

    #octagon {
    width
    : 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;
    width
    : 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;
    width
    : 42px;
    height
    : 0;
    }


    20、爱心

    最终效果:

     

    CSS代码如下:

    #heart {
    position
    : relative;
    width
    : 100px;
    height
    : 90px;
    }
    #heart:before,
    #heart:after
    {
    position
    : absolute;
    content
    : "";
    left
    : 50px;
    top
    : 0;
    width
    : 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;
    width
    : 212px;
    height
    : 100px;
    }

    #infinity:before,
    #infinity:after
    {
    content
    : "";
    position
    : absolute;
    top
    : 0;
    left
    : 0;
    width
    : 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;
    width
    : 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 {
    width
    : 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 {
    width
    : 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;
    width
    : 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;
    width
    : 80px;
    height
    : 80px;
    position
    : relative;
    text-align
    : center;
    }
    #burst-12:before, #burst-12:after
    {
    content
    : "";
    position
    : absolute;
    top
    : 0;
    left
    : 0;
    height
    : 80px;
    width
    : 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;
    width
    : 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;
    width
    : 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-width
    : 0 25px 25px 25px;
    height
    : 0;
    width
    : 50px;
    position
    : relative;
    margin
    : 20px 0 50px 0;
    }
    #cut-diamond:after
    {
    content
    : "";
    position
    : absolute;
    top
    : 25px;
    left
    : -25px;
    width
    : 0;
    height
    : 0;
    border-style
    : solid;
    border-color
    : red transparent transparent transparent;
    border-width
    : 70px 50px 0 50px;
    }


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

    CSS代码如下:

    #yin-yang {
    width
    : 96px;
    height
    : 48px;
    background
    : #eee;
    border-color
    : red;
    border-style
    : solid;
    border-width
    : 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%;
    width
    : 12px;
    height
    : 12px;
    }

    #yin-yang:after
    {
    content
    : "";
    position
    : absolute;
    top
    : 50%;
    left
    : 50%;
    background
    : red;
    border
    : 18px solid #eee;
    border-radius
    :100%;
    width
    : 12px;
    height
    : 12px;
    }
     
    这些代码来源于:css-tricks 
  • 相关阅读:
    布尔值
    字典及字典的索引
    列表及列表的索引
    python之基本数据类型
    python之变量
    一个python程序运行的三大步骤
    编程语言分类与介绍
    应用程序的启动流程
    爬虫之PyQuery的base了解
    Django:web认识,jinja2模块,如何安装Django
  • 原文地址:https://www.cnblogs.com/pannysp/p/2344285.html
Copyright © 2020-2023  润新知