纯css3饼图五等分

先看效果图:


HTML代码如下:

<!DOCTYPE html>
<html>
<head>
	<title>pie</title>
	<style type="stylesheet" src="pie.css"></style>
</head>
<body>
	<div class="pinOfStudent">
		<div id="tipZone">
			<div id="base1" class="part effective1">
				<div class="bing">
					<span>良好</span>
				</div>
			</div>
			<div id="base2" class="part" >
				<div class="bing">
					<span>优秀</span> 
				</div>
			</div>
			<div id="base3" class="part">
				<div class="bing">
					<span>未提交</span>
				</div>
			</div>
			<div id="base4"class="part" >
				<div class="bing">
					<span>需努力</span>
				</div>
			</div>
			<div id="base5" class="part" >
				<div class="bing">
					<span>加油</span>
				</div>
			</div>
			<div id="base6" class="inner"  >
				<span>98%</span><br/>
				<span>得分率</span>
			</div>
		</div>
</div>
</body>
</html>

css代码如下:

.pinOfStudent{
background-color: #ffffff;
width: 100%;
position: relative;
}
#tipZone{
position:relative;
left:0;
right:0;
top: 1em;
width:12.5em;
height:12.5em;
margin: 0 auto;
}
#base1 {
margin-top:10px;
z-index:1;
}
#base1 .bing {
background-color: #af9df7;
border-color: #af9df7;
-moz-transform:rotate(72deg);
-webkit-transform:rotate(72deg);
-o-transform:rotate(72deg);
transform: rotate(72deg);
}
#base2{
margin-top:10px;
-moz-transform:rotate(72deg);
-webkit-transform:rotate(72deg);
-o-transform:rotate(72deg);
transform:rotate(72deg);
}
#base2 .bing {
background-color: #93dec8;
border-color: #93dec8;
-moz-transform: rotate(72deg);
-webkit-transform: rotate(72deg);
-o-transform: rotate(72deg);
transform: rotate(72deg);
}
#base3{
margin-top:10px;
-moz-transform:rotate(144deg);
-webkit-transform:rotate(144deg);
-o-transform:rotate(144deg);
transform:rotate(144deg);
}
#base3 .bing{
background-color:#efb486;
border-color:#efb486;
-moz-transform:rotate(72deg);
-webkit-transform:rotate(72deg);
-o-transform:rotate(72deg);
transform:rotate(72deg);
}
#base4{
margin-top:10px;
-moz-transform:rotate(216deg);
-webkit-transform:rotate(216deg);
-o-transform:rotate(216deg);
transform:rotate(216deg);
}
#base4 .bing{
background-color:#f2b6c8;
border-color:#f2b6c8;
-moz-transform:rotate(72deg);
-webkit-transform:rotate(72deg);
-o-transform:rotate(72deg);
transform:rotate(72deg);
}
#base5{
margin-top:10px;
-moz-transform:rotate(288deg);
-webkit-transform:rotate(288deg);
-o-transform:rotate(288deg);
transform:rotate(288deg);
}
#base5 .bing{
background-color:#cae9ff;
border-color:#cae9ff;
-moz-transform:rotate(72deg);
-webkit-transform:rotate(72deg);
-o-transform:rotate(72deg);
transform:rotate(72deg);
}
.part{
position:absolute;
width: 100%;
height: 100%;
clip: rect(0em,12.5em,12.5em,6.25em);
}
.effective1{
margin-top: -0.1rem !important;
margin-left: 0.56rem;
z-index: 0 !important;
}
.effective1 .bing{
background-color: #866af3 !important;
border-color: #866af3 !important;
}
.effective2{
margin-top: 0.18rem !important;
margin-left: 0.2rem;
}
.effective2 .bing{
background-color: #3ccda3 !important;
border-color: #3ccda3 !important;
}
.effective3{
margin-top: 1.4em !important;
margin-left: 0em;
}
.effective3 .bing{
background-color: #fa9241 !important;
border-color: #fa9241 !important;
}
.effective4{
margin-top: 0.55em !important;
margin-left: -0.7em;
}
.effective4 .bing{
background-color: #f680a4 !important;
border-color: #f680a4 !important;
}
.effective5{
margin-top: -0.1rem !important;
margin-left: -0.13rem;
}
.effective5 .bing{
background-color: #1f9cf5 !important;
border-color: #1f9cf5 !important;
}

.bing {
position:absolute;
width:12.5em;
height:12.5em;
clip:rect(0px,6.25em,12.5em,0px);
-moz-border-radius:6.25em;
-webkit-border-radius:6.25em;
border-radius:6.25em;
}
.bing span{
position: absolute;
transform: rotate(-30deg);
top: 1.7em;
left: 2.4em;
display: block;
color:#ffffff;
}
.inner{
position: absolute;
top: 6%;
width: 50%;
height: 50%;
background-color: #579edf;
border-radius: 50%;
left: 0;
right: 0;
bottom: 0;
margin: auto;
color:#ffffff;
text-align: center;
z-index:15;
}
.inner span{
font-size:1.5em;
width: 50%;
}
.inner span:first-child{
margin-top: 0.8em;
display: inline-block;
}
.inner span:last-child{
font-size: 0.35rem;
}
.active{
width: 52%;
height:52%;
background-color: #127ce0;
border:2px solid #328de4;
box-shadow: 0.07rem 0.05rem 0.07rem #333;
}













  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用CSS3的transform属性和伪元素来绘制饼图。以下是一个简单的饼图示例: HTML代码: ```html <div class="pie-chart"> <div class="pie-chart__slice slice1"></div> <div class="pie-chart__slice slice2"></div> <div class="pie-chart__slice slice3"></div> <div class="pie-chart__slice slice4"></div> </div> ``` CSS代码: ```css .pie-chart { position: relative; width: 200px; height: 200px; border-radius: 50%; background-color: #ddd; transform: rotate(-90deg); } .pie-chart__slice { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; clip: rect(0, 100px, 200px, 0); border-radius: 50%; transform-origin: center center; } .slice1 { background-color: #f00; transform: rotate(0deg); } .slice2 { background-color: #0f0; transform: rotate(45deg); } .slice3 { background-color: #00f; transform: rotate(90deg); } .slice4 { background-color: #ff0; transform: rotate(135deg); } .slice1::before, .slice2::before, .slice3::before, .slice4::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 50%; background-color: inherit; transform-origin: center center; } .slice1::before { transform: rotate(30deg); } .slice2::before { transform: rotate(75deg); } .slice3::before { transform: rotate(120deg); } .slice4::before { transform: rotate(165deg); } ``` 首先,创建一个形容器,使用`border-radius`属性将其变成形,并使用`transform`属性将其旋转-90度,使其起始点位于正上方。 接下来,创建四个切片元素,使用`position: absolute`将其定位在形容器的中心。每个切片元素都有不同的背景颜色,并使用`transform`属性将其旋转不同的角度,以形成饼图的不同部。 为了使切片看起来像是从心开始的,我们使用`clip`属性将每个切片元素的大小限制为半径的一半,使其只显示在形容器的左上方。然后,使用伪元素在每个切片元素内部创建一个形,使其填充整个切片,从而使其看起来像是从心开始的。 最后,使用`transform-origin`属性将切片元素和伪元素的变换原点设置为它们的中心,以使它们旋转时绕着心旋转。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值