原理是利用边框实现,好处是不用加载图片,节省流量;坏处就是会有很长一段css样式
基本:1.设置width,height为0 ,然后设置一个border-width
利用border可以画很多有趣的图
1.正方形
1
2
3
4
5
6
7
|
#square{
width:0px;
height:0px;
border-width: 100px;
border-style: solid;
border-color: blue red green yellow;
}
|
2.三角形:设置其他边颜色为透明值transparent
1
2
3
4
5
6
7
|
#triangle{
width
:
0px
;
height
:
0px
;
border-width
:
100px
;
border-style
:
solid
;
border-color
:
blue
transparent
transparent
transparent
;
}
|
3.圆形:设置圆角属性border-radius
1
2
3
4
5
6
7
8
|
#
circle
{
width
:
0px
;
height
:
0px
;
border-width
:
100px
;
border-style
:
solid
;
border-color
:
blue
red
green
yellow;
border-radius:
100px
;
}
|
4.扇形:同理设置透明色
1
2
3
4
5
6
7
8
|
#fan{
width
:
0px
;
height
:
0px
;
border-width
:
100px
;
border-style
:
solid
;
border-color
:
transparent
transparent
transparent
yellow;
border-radius:
100px
;
}
|
5.同心圆:在圆的基础上添加width/height值
1
2
3
4
5
6
|
#circle-
circle
{
width
:
200px
;
height
:
200px
;
border
:
50px
solid
red
;
border-radius:
200px
;
}
|
5.半圆:利用border-radius分别设置左上角,右上角,右下角,左下角的值
1
2
3
4
5
6
7
8
|
#circle-half{
width
:
200px
;
height
:
100px
;
background-color
:
red
;
/*border-color: red;*/
/*border-style: solid;*/
border-radius:
100px
100px
0
0
;
}
|
6.四分之一圆:同半圆原理
1
2
3
4
5
6
|
#circle-double-half{
width
:
200px
;
height
:
200px
;
background-color
:
red
;
border-radius:
200px
0
0
0
;
}
|
7.小尾巴 :主要是在半圆的基础上添加某一侧的Border,border-top,border-right,border-left,border-bottom,大家阔以动手试一试
1
2
3
4
5
6
7
8
|
#tail{
width
:
100px
;
height
:
100px
;
border-radius:
100px
0
0
0
;
border-top
:
30px
solid
red
;
/*border-radius: 0 100px 0 0;
border-top: 30px solid red;*/
}
|
8.提示框:用到了:after伪类去实现小尾巴的功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#pop{
margin-top
:
20px
;
width
:
400px
;
height
:
200px
;
border-radius:
20px
;
background-color
:
red
;
position
:
relative
;
}
#pop:after{
content
:
""
;
height
:
100px
;
width
:
100px
;
border-radius:
0
0
200px
0
;
border-right
:
50px
solid
red
;
position
:
absolute
;
top
:
180px
;
}
|
9.椭圆:这里用到border-radius: 100px / 50px,其中"/"前面的表示水平半径(其值为width/2),后面的表示垂直半径(其值为height/2).
1
2
3
4
5
6
7
|
#ellipse{
margin-top
:
20px
;
width
:
200px
;
height
:
100px
;
border-radius:
100px
/
50px
;
background-color
:
red
;
}
|
10.梯形:主要是理解Border属性,也就是第一幅图,梯形就比较容易画了
1
2
3
4
5
6
7
8
|
#trapezium {
height
:
0
;
width
:
200px
;
border-bottom
:
100px
solid
red
;
border-left
:
50px
solid
transparent
;
border-right
:
50px
solid
transparent
;
}
|
11.菱形:主要是用到旋转transform,不过要考虑到浏览器内核不同,要实现兼容,我这里就省略了
1
2
3
4
5
6
|
#diamond {
width
:
100px
;
height
:
100px
;
background-color
:
red
;
transform:rotate(
-45
deg);
}
|
12.平行四边形:也是主要用到transform,但菱形用的是skew,倾斜
1
2
3
4
5
6
|
#parallelogram {
width
:
160px
;
height
:
100px
;
background-color
:
red
;
transform:skew(
30
deg);
}
|
13.五角星:主要是画三个三角形,通过旋转,然后拼接成一个五角星,各种画法自己去体会.....(可以通过不同的三角形去拼接,但原理是一样的)
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
|
#star{
width
:
0
;
height
:
0
;
color
:
red
;
position
:
relative
;
border-left
:
100px
solid
transparent
;
border-right
:
100px
solid
transparent
;
border-bottom
:
70px
solid
red
;
transform:rotate(
35
deg);
}
#star:before{
content
:
''
;
width
:
0
;
height
:
0
;
position
:
absolute
;
border-bottom
:
80px
solid
red
;
border-left
:
30px
solid
transparent
;
border-right
:
30px
solid
transparent
;
top
:
-50px
;
left
:
-60px
;
transform:rotate(
-35
deg);
}
#star:after{
content
:
""
;
width
:
0px
;
height
:
0px
;
position
:
absolute
;
border-top
:
70px
solid
red
;
border-left
:
100px
solid
transparent
;
border-right
:
100px
solid
transparent
;
left
:
-100px
;
transform:rotate(
110
deg);
}
|
14:爱心:用菱形和胶囊拼接一个爱心形
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
|
#love{
position
:
relative
;
width
:
100px
;
height
:
100px
;
background-color
:
red
;
transform:rotate(
45
deg);
}
#love:before{
position
:
absolute
;
left
:
-75px
;
content
:
""
;
width
:
80px
;
height
:
100px
;
background
:
red
;
border-radius:
50px
0
0
50px
;
}
#love:after{
position
:
absolute
;
left
:
10px
;
top
:
-85px
;
content
:
""
;
width
:
80px
;
height
:
100px
;
background
:
red
;
border-radius:
0
50px
50px
0
;
transform:rotate(
-90
deg);
}
|