css实现三角形,五角星,爱心等原理

将以下代码直接运行即可看到各种效果以及实现原理!!!

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>三角形变换</title>
		<style>
			.zuoyouxia{
				width: 0;
				height: 0;
				border-bottom: 100px solid red;
				border-left: 50px solid gray;
				border-right: 50px solid green;
			}
			.zfx{
				width: 0px;
				height: 0px;
				border-top:50px solid red;
				border-bottom: 50px solid green;
				border-right: 50px solid pink;
				border-left: 50px solid lightblue;
			}
			.shangzuo{
				width: 0px;
				height: 0px;
				border-top:50px solid red;
				border-left: 50px solid lightblue;
			}
			.touming{
				width: 0;
				height: 0;
				border-top: 50px solid red;
				border-left: 50px solid red;
				border-bottom: 50px solid transparent;
				border-right: 50px solid transparent;
			}
			.sixstar{
				width: 0;
				height: 0;
				border-right: 50px solid transparent;
				border-left: 50px solid transparent;
				border-bottom: 100px solid red;
				position: relative;
			}
			.sixstar:after{
				width: 0;
				height: 0;
				border-top:100px solid red;
				border-right: 50px solid transparent;
				border-left: 50px solid transparent;
				position: absolute;
				top:30px;
				left: -50px;
				content: "";
			}
			.fivestar{
				width: 0;
				height: 0;
				border-bottom: 70px solid #FF0000;
				border-right: 100px solid transparent;
				border-left: 100px solid transparent;
                                position: relative;
                                transform: rotate(35deg);
			}
			.fivestar:before{
				width: 0;
				height: 0;
				border-bottom: 80px solid green;
				border-right: 30px solid transparent;
				border-left: 30px solid transparent;
				content: "";
				position: absolute;
				transform: rotate(-35deg);
				top:-45px;
				left: -65px;
			}
			.fivestar:after{
				width: 0;
				height: 0;
				border-bottom: 70px solid blue;
				border-right: 100px solid transparent;
				border-left: 100px solid transparent;
                                position: absolute;
                                transform: rotate(-70deg);
                                content: "";
                                top:3px;
                                left: -105px;
			}
			.shidouren{
				width: 0;
				height: 0;
				border-top:60px solid red;
				border-left: 60px solid red;
				border-bottom: 60px solid red;
				border-right: 60px solid transparent;
				border-top-left-radius: 60px;
				border-top-right-radius: 60px;
				border-bottom-left-radius: 60px;
				border-bottom-right-radius: 60px;
			}
			.main{
			  transform: rotate(45deg);
			   position: absolute;
			   margin-top:50px;
			}
			.disc1{
				width: 100px;
				height: 100px;
				border:1px solid red;
				background: red;
				border-radius: 50%;
				float: left;
			}
			.disc2{
				width: 100px;
				height: 100px;
				border:1px solid red;
			        border-radius: 50%;
			        float: left;
			        background: red;
			        position: relative;
			        right: 52px;
			        top:-50px;
			}
			.square{
				width: 100px;
				height: 100px;
				background: red;
				float: left;
				position: relative;
				right: 152px;
				top:2px;
			}
		</style>
	</head>
	<body>
		<h3>当3个边框都设置的时候</h3>
		<!--当宽高都为0时,左右下设置边框100,50,50,也是一个正方形,当数量不相等时,依据多数-->
		<div class="zuoyouxia"></div>
		<br>
		<!--当宽高都为0时,设置边框都为20px,就是一个正方形,并且宽度变为原来的两倍-->
		<h3>当4个边框都设置的时候,边框才会是两倍</h3>
		<div class="zfx"></div><Br>
		<!--当宽高都为0时,上,左设置边框都为20px,宽度就是边框的宽度,也是一个正方形-->
		<h3>只设置两边的时候</h3>
		<div class="shangzuo"></div><Br>
		<!--当宽高都为0时,上下左右设置边框都为50px,并且右下为透明,就是一个直角三角形-->
		<h3>当4个边框都设置的时候,边框才会是两倍,这里透明了右下</h3>
		<div class="touming"></div>
		<h3>六角形:一个向上三角形和一个向下三角形,通过top通过left移动重叠形成</h3>
		<div class="sixstar"></div><Br>
		<h3>五角星:第一个红色通过旋转35度,第二个绿色旋转-35度,第三个蓝色旋转-70度</h3>
		<div class="fivestar"></div><Br>
		<h3>食豆人:上下左右,右为透明,并且设置弧度</h3>
		<div class="shidouren"></div><Br>
		<h3>爱心:两个圆形和一个正方形</h3>
		<div class="main">
			<div class="disc1"></div>
			<div class="disc2"></div>
			<div class="square"></div>
		</div>
	</body>
</html>



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值