CSS画图

原理是利用边框实现,好处是不用加载图片,节省流量;坏处就是会有很长一段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);
}

  

转载于:https://www.cnblogs.com/7qin/p/10226883.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值