CSS 魔法系列:纯 CSS 绘制基本图形(圆、椭圆等)

本文介绍如何使用纯CSS绘制各种图形,包括正方形、长方形、圆形、椭圆、梯形、平行四边形以及更复杂的星形、五角星、六角星、五边形、六边形、八边形和心形。通过巧妙利用CSS3的属性如border-radius, transform等,无需图片即可轻松创建这些形状。

  我们的网页因为 CSS 而呈现千变万化的风格。这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果。特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来。《CSS 魔法系列》继续给大家带来 CSS 在网页中以及图形绘制中的使用。这篇文章给大家带来的是纯 CSS 绘制基本图形(圆、椭圆等)。

您可能感兴趣的相关文章

 

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

  

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

  

Circle
 
 
1
2
3
4
5
6
7
8
9
10
# circle  {
     width : 100px ;
     height : 100px ;
     background : red ;
     -moz-border-radius: 50px ;
     -webkit-border-radius: 50px ;
     border-radius: 50px ;
}
 
/* Cleaner, but slightly less support: use "50%" as value */

  

Oval
 
 
1
2
3
4
5
6
7
8
9
10
#oval {
     width : 200px ;
     height : 100px ;
     background : red ;
     -moz-border-radius: 100px  / 50px ;
     -webkit-border-radius: 100px  / 50px ;
     border-radius: 100px  / 50px ;
}
 
/* Cleaner, but slightly less support: use "50%" as value */

  

Trapezoid
 
 
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 ;
}

  

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

 

Star (6-points)
 
 
 
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 ;
}

  

Star (5-points)
 
 
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-right 100px  solid  transparent ;
    border-bottom : 70px   solid  red ;
    border-left :   100px  solid  transparent ;
    -moz-transform:    rotate( 35 deg);
    -webkit-transform: rotate( 35 deg);
    -ms-transform:     rotate( 35 deg);
    -o-transform:      rotate( 35 deg);
}
#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( -35 deg);
    -moz-transform:    rotate( -35 deg);
    -ms-transform:     rotate( -35 deg);
    -o-transform:      rotate( -35 deg);
 
}
#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( -70 deg);
    -moz-transform:    rotate( -70 deg);
    -ms-transform:     rotate( -70 deg);
    -o-transform:      rotate( -70 deg);
    content : '' ;
}

  

Pentagon

 

 
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 ;
}

  

Hexagon

 

 
 
 
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 ;
}

  

Octagon
 
 
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 ;
}

  

Heart
 
 
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( -45 deg);
        -moz-transform: rotate( -45 deg);
         -ms-transform: rotate( -45 deg);
          -o-transform: rotate( -45 deg);
             transform: rotate( -45 deg);
     -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( 45 deg);
        -moz-transform: rotate( 45 deg);
         -ms-transform: rotate( 45 deg);
          -o-transform: rotate( 45 deg);
             transform: rotate( 45 deg);
     -webkit-transform-origin: 100%  100% ;
        -moz-transform-origin: 100%  100% ;
         -ms-transform-origin: 100%  100% ;
          -o-transform-origin: 100%  100% ;
             transform-origin : 100%  100% ;
}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值