javascript-CSS(或HTML5 / SVG)中的单杠“图表”到甜甜圈(甜甜圈)图表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-CSS(或HTML5 / SVG)中的单杠“图表”到甜甜圈(甜甜圈)图表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2859字,纯文字阅读大概需要5分钟。
内容图文
![javascript-CSS(或HTML5 / SVG)中的单杠“图表”到甜甜圈(甜甜圈)图表](/upload/InfoBanner/zyjiaocheng/666/d46e6d52058e4a22a109cba1d42a79b8.jpg)
我正在寻找将单个条形图转换为甜甜圈图的最快/最简单/最轻的方法.当前数据位于div中,它由三个span元素组成,其中包含来自Typescript和mongoDB后端的数据.在这种情况下,仅使用CSS就能制作一个响应式的甜甜圈图吗?
现在的数据有点像这样显示:
http://www.dailydoseofexcel.com/blogpix/barpie5.gif
这是我要达到的目标:
http://www.teylyn.com/wp-content/uploads/2010/03/donut-leader-06.gif
基本上,这是HTML中的结构:
<div>
<span>{{data1}}</span>
<span>{{data2}}</span>
<span>{{data3}}</span>
</div>
如果需要,我将添加更多(准确的)代码示例,谢谢.
编辑:
该代码更具体地讲,
HTML:
<div class="bar-chart-container">
<span class="bar-data1">{{data1.percentage}}</span>
<span class="bar-data2">{{data2.percentage}}</span>
<span class="bar-data3">{{data3.percentage}}</span>
</div>
CSS:
.bar-chart-container {
display: block;
}
.bar-chart {
display: inline-block;
font-size: 0.9em;
white-space: normal;
}
.bar-chart.bar-data1 {
background-color: green;
}
.bar-chart.bar-data2 {
background-color: red;
}
.bar-chart.bar-data3 {
background-color: gray;
解决方法:
<div class="card">
<div class="donut-chart chart1">
<div class="slice one"></div>
<div class="slice two"></div>
<div class="chart-center">
<span>{{data1}}</span>
<span>{{data2}}</span>
</div>
</div>
</div>
然后是CSS
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
body {
font-family: sans-serif;
background: #e1e1e1;
}
.card {
float: left;
background: #fff;
padding: 20px;
margin: 0 20px 0 0;
}
// Donut Chart Mixin
.donut-chart {
position: relative;
border-radius: 50%;
overflow: hidden;
.slice {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.chart-center {
position: absolute;
border-radius: 50%;
span {
display: block;
text-align: center;
}
}
}
@mixin donut-chart($name, $perc, $size, $width, $base, $center, $color, $textColor: $color, $textSize: 40px) {
$color2: $color;
$base2: $base;
$deg: ($perc/100*360)+deg;
$deg1: 90deg;
$deg2: $deg;
// If percentage is less than 50%
@if $perc < 50 {
$base: $color;
$color: $base2;
$color2: $base2;
$deg1: ($perc/100*360+90)+deg;
$deg2: 0deg;
}
.donut-chart {
&#{$name} {
width: $size;
height: $size;
background: $base;
.slice {
&.one {
clip: rect(0 $size $size/2 0);
-webkit-transform: rotate($deg1);
transform: rotate($deg1);
background: $color;
}
&.two {
clip: rect(0 $size/2 $size 0);
-webkit-transform: rotate($deg2);
transform: rotate($deg2);
background: $color2;
}
}
.chart-center {
top: $width;
left: $width;
width: $size - ($width * 2);
height: $size - ($width * 2);
background: $center;
span {
font-size: $textSize;
line-height: $size - ($width * 2);
color: $textColor;
&:after {
content: '#{$perc}%';
}
}
}
}
}
} // mixin
// Charts
@include donut-chart('.chart1', 75, 200px, 10px, #e1e1e1, #fff, #50c690);
@include donut-chart('.chart2', 91, 200px, 25px, #e1e1e1, #fff, #48b2c1);
@include donut-chart('.chart3', 15, 120px, 5px, #e1e1e1, #fff, #353535);
@include donut-chart('.chart4', 45, 240px, 15px, #e1e1e1, #fff, #f26a4a, #f26a4a, 60px);
内容总结
以上是互联网集市为您收集整理的javascript-CSS(或HTML5 / SVG)中的单杠“图表”到甜甜圈(甜甜圈)图表全部内容,希望文章能够帮你解决javascript-CSS(或HTML5 / SVG)中的单杠“图表”到甜甜圈(甜甜圈)图表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。