`

纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)【转】

 
阅读更多

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

 

1、正方形

 

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
#square {
    width: 100px;
    height: 100px;
    background: red;
}

2、长方形

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
#rectangle {
    width: 200px;
    height: 100px;
    background: red;
}

3、圆形

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
8
#circle {
    width: 100px;
    height: 100px;
    background: red;
    -moz-border-radius: 50px;
    -webkit-border-radius: 50px;
    border-radius: 50px;
}

4、椭圆

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
8
#oval {
    width: 200px;
    height: 100px;
    background: red;
    -moz-border-radius: 100px / 50px;
    -webkit-border-radius: 100px / 50px;
    border-radius: 100px / 50px;
}

5、上三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
#triangle-up {
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 100px solid red;
}

6、下三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
#triangle-down {
    width: 0;
    height: 0;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 100px solid red;
}  

7、左三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
#triangle-left {
    width: 0;
    height: 0;
    border-top: 50px solid transparent;
    border-right: 100px solid red;
    border-bottom: 50px solid transparent;
}

8、右三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
#triangle-right {
    width: 0;
    height: 0;
    border-top: 50px solid transparent;
    border-left: 100px solid red;
    border-bottom: 50px solid transparent;
}  

9、左上三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
#triangle-topleft {
    width: 0;
    height: 0;
    border-top: 100px solid red;
    border-right: 100px solid transparent;         
}

10、右上三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
#triangle-topright {
    width: 0;
    height: 0;
    border-top: 100px solid red;
    border-left: 100px solid transparent;
     
}

11、左下三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
#triangle-bottomleft {
    width: 0;
    height: 0;
    border-bottom: 100px solid red;
    border-right: 100px solid transparent
}  

12、右下三角

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
#triangle-bottomright {
    width: 0;
    height: 0;
    border-bottom: 100px solid red;
    border-left: 100px solid transparent;
}

13、平行四边形

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
8
9
#parallelogram {
    width: 150px;
    height: 100px;
        margin-left:20px;
    -webkit-transform: skew(20deg);
       -moz-transform: skew(20deg);
         -o-transform: skew(20deg);
    background: red;
}

14、梯形

最终效果:

 

CSS代码如下:

 

1
2
3
4
5
6
7
#trapezoid {
    border-bottom: 100px solid red;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    height: 0;
    width: 100px;
}

15、六角星

最终效果:

 

 

 

 

 

CSS代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#star-five {
   margin: 50px 0;
   position: relative;
   display: block;
   color: red;
   width: 0px;
   height: 0px;
   border-right100px 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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#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代码如下:

 

1
2
3
4
5
6
7
8
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#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;
}

好了,就到这里了,一共28个,个人觉得后面几个比较犀利。这些代码的来源是css-tricks。由青藤屋博客整理,转载请保留原文链接:
http://www.itivy.com/ivy/archive/2012/1/16/css-shape.html

分享到:
评论

相关推荐

    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)

    文章还提到了如何绘制爱心和阴阳八卦等稍微复杂的图形,虽然内容未完全展示,但这些图形的实现原理通常是通过多边形边框技巧或使用CSS的变换(transform)功能来进一步构建复杂形状。 绘制爱心可以使用两个相邻的...

    纯css绘制几何图形

    本文将深入探讨如何使用纯CSS绘制各种几何图形,包括三角形、圆形(半圆、1/4圆)以及多边形(平行四边形、梯形、五边形、六边形、八边形)。 首先,让我们从最简单的形状——三角形开始。在CSS中,我们不能直接...

    纯CSS3几何多边形图形动画特效.zip

    【标题】"纯CSS3几何多边形图形动画特效.zip" 涉及的主要知识点是CSS3中的图形绘制和动画效果。CSS3是层叠样式表的第三个版本,相较于CSS2,它引入了许多新的特性,使得网页设计变得更加丰富多彩。在这个项目中,...

    多边形分割图片动画

    这意味着将一张完整的图片拆分成多个多边形区域,这些区域可以是三角形、矩形或梯形等。这种技术通常用于创建马赛克效果或者实现特定的艺术风格。分割过程可以通过算法实现,比如使用三角剖分算法(如 ear cutting ...

    div-css制作多边形.zip

    在Web开发中,利用div和CSS来创建各种多边形是一种常见的技巧,它可以极大地丰富网页设计的视觉效果。本教程的"div-css制作多边形.zip"文件包含了一系列相关资源,如HTML文件(index.html、readme.html)、相关...

    Webgl旋转三角形源码

    WebGL是一种基于OpenGL标准的JavaScript API,用于在任何兼容的Web浏览器中进行2D和3D图形渲染。它使得开发者可以在网页上实现复杂的交互式图形,而无需借助插件。"Webgl旋转三角形源码"是WebGL学习的基础教程,通常...

    css制作的几何图形7.3

    首先,我们来探讨CSS如何构建基本的几何图形。CSS通过设置`border-radius`、`transform`、`background-color`等属性来创建各种形状。以下是一些常见的CSS几何图形及其制作方法: 1. **正方形和矩形**:最基础的形状...

    html5 canvas多边形分割图片动画

    在本例中,我们可以将一张图片切割成多个多边形(如三角形、矩形或梯形)部分,这通常通过计算每个多边形的顶点坐标来实现。切割过程可能涉及到图像的拉伸和裁剪,以适应预定义的形状。 CSS在其中的角色主要是为...

    纯CSS3绘制的僵尸宝宝卡通头像效果源码.zip

    僵尸宝宝的头像可能包含圆形或椭圆形来表示头部,矩形或梯形来构建身体,以及多边形如三角形或五边形来制作手脚。CSS3提供了`border-radius`属性来创建圆角,`clip-path`或`mask`来定义复杂的形状。开发者可以通过...

    借助HTML5 Canvas来绘制三角形和矩形等多边形的方法

    本文将深入探讨如何使用HTML5 Canvas来绘制三角形、矩形以及更复杂的多边形。 首先,我们需要了解Canvas的核心组件,即CanvasRenderingContext2D对象。这个对象提供了各种属性和方法,用于控制在Canvas元素上绘制的...

    CSS3+SVG实现各国国旗动画图标变换效果源码.zip

    1. **矢量图形**: SVG可以定义国旗的各个形状,如矩形、三角形、多边形等,通过路径数据表示,确保无论放大多少倍,国旗的细节都能清晰可见。 2. **内联样式与属性**: SVG元素可以直接内联CSS样式,方便控制国旗的...

    绘制规则多边形

    本示例聚焦于“绘制规则多边形”这一主题,利用SuperMap iClient 6R for JavaScript,我们可以创建并展示出各种几何形状,如矩形、正方形、圆形以及具有固定边数的多边形等。 SuperMap iClient 6R是SuperMap公司...

    HTML5 SVG多彩三角形矩阵动画特效

    SVG中可以创建多种形状,如矩形、圆形、线、多边形等。在这个特效中,我们主要使用`<polygon>`元素来绘制三角形。`<polygon>`元素通过指定一系列的点坐标来形成一个多边形,例如: ```html ,y1 x2,y2 x3,y3" fill=...

    css画尖框div

    "css画尖框div"这个主题就是关于如何用CSS技巧来创建带有尖角的矩形或任何其他形状的div。 在CSS中,我们可以通过调整边框宽度、边框颜色以及边框类型来控制边框的外观。为了创建尖角,我们需要使用边框的宽度和...

    CSS3绘制各种图形图标样式特效特效代码

    例如,一个简单的三角形可以通过旋转一个矩形的边角来实现。 再者,过渡和动画(animations)让图标在状态之间平滑地转换。这不仅限于颜色变化,还可以包括尺寸调整、位置移动等。这为网页添加了动态元素,提高了...

    基于HTML5和CSS技术开发实时性的Web图形图像处理平台源码+项目说明.zip

    2. 实现直线、曲线、椭圆(圆)、矩形(圆角矩形)、三角形(直角三角形、等边三角形、任意三角形)、多边形的绘制。3. 绘制过程中,可以选择颜色,选择颜色有两种方式:颜色选择、颜色拾取。可以进行颜色填充,即对...

    CSS3SVG绘制的悉尼歌剧院

    接着,通过`<path>`、`<polygon>`或`<rect>`等元素来构建形状,每个元素都有其特定的属性,如`d`属性用于定义路径数据,`points`属性用于定义多边形的顶点,`x`和`y`属性用于定义矩形的位置等。然后,使用CSS3的属性...

    基于HTML5,CSS和Javascript技术开发实时性的Web图形图像处理平台源码+项目说明+使用说明

    实现直线、曲线、椭圆(圆)、矩形(圆角矩形)、三角形(直角三角形、等边三角形、任意三角形)、多边形的绘制。 绘制过程中,可以选择颜色,选择颜色有两种方式:颜色选择、颜色拾取。可以进行颜色填充,即对选定...

    线条多边形时尚网站模板

    而多边形元素则常采用扁平化设计,通过三角形、矩形、梯形等形状的组合,创造出立体感和动态效果,为网页增添了几何美学和现代感。 网站模板的结构通常包括头部、导航栏、主体内容区、侧边栏和页脚等部分。在“线条...

Global site tag (gtag.js) - Google Analytics