纯CSS实现饼图、环形图(百分比)

一、饼图

.pie {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: yellowgreen;
    background-image: linear-gradient(to right, transparent 50%, #655 0);
}

.pie::before {
    content: '';
    display: block;
    margin-left: 50%;
    height: 100%;
    border-radius: 0 100% 100% 0/50%;
    background-color: inherit;
    transform-origin: left;
    transform: rotate(.2turn);
}

 

<div class="pie"></div>

 

二、环形图

 

.loading {
	margin: 100px auto;
	width: 8em;
	height: 8em;
	position: relative;
}

.loading .progress {
	position: absolute;
	width: 6em;
	height: 6em;
	background-color: white;
	border-radius: 50%;
	left: 1em;
	top: 1em;
	line-height: 6em;
	text-align: center;
}

.left,
.right {
	width: 4em;
	height: 8em;
	overflow: hidden;
	position: relative;
	float: left;
	background-color: #999999
}

.left {
	border-radius: 8em 0 0 8em;
}

.right {
	border-radius: 0 8em 8em 0;
}

.left:after,
.right:after {
	content: "";
	position: absolute;
	display: block;
	width: 4em;
	height: 8em;
	background-color: white;
	border-radius: 8em 0 0 8em;
	background-color: red;
}

.right:after {
	content: "";
	position: absolute;
	display: block;
	border-radius: 0 8em 8em 0;
}
.left:after {
	transform-origin: right center;
}

.right:after {
	transform-origin: left center;
	transform: rotateZ(45deg);
}

 

<div class="loading">
	<div class="left"></div>
	<div class="right"></div>
	<div class="progress">85%</div>
</div>

 

posted @ 2018-05-08 16:20  咩咩阳  阅读(18251)  评论(0编辑  收藏  举报