css - 纯分段 CSS SVG 甜甜圈
问题描述
我正在寻找一个纯动态 css3 或 svg 甜甜圈步骤图,如下图所示。
我试图用 svg 制作它,但我无法让它工作。
.donut-chart {
width: 190px;
}
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
@import url(https://fonts.googleapis.com/css?family=Montserrat:400);
.chart-text {
font: 16px/1.4em "Montserrat", Arial, sans-serif;
fill: #000;
-moz-transform: translateY(0.25em);
-ms-transform: translateY(0.25em);
-webkit-transform: translateY(0.25em);
transform: translateY(0.25em);
}
.chart-number {
font-size: 0.6em;
line-height: 1;
text-anchor: middle;
-moz-transform: translateY(-0.25em);
-ms-transform: translateY(-0.25em);
-webkit-transform: translateY(-0.25em);
transform: translateY(-0.25em);
}
.chart-label {
font-size: 0.2em;
text-transform: uppercase;
text-anchor: middle;
-moz-transform: translateY(0.7em);
-ms-transform: translateY(0.7em);
-webkit-transform: translateY(0.7em);
transform: translateY(0.7em);
}
<div class="donut-chart">
<svg viewBox="0 0 42 42" class="donut">
<circle class="donut-hole" cx="21" cy="21" r="15.91549430918954" fill="#fff"></circle>
<circle class="donut-ring" cx="21" cy="21" r="15.91549430918954" fill="transparent" stroke="#d2d3d4" stroke-width="3"></circle>
<!-- first chart is from 0-60% -->
<circle class="donut-segment"
cx="21"
cy="21"
r="15.91549430918954"
fill="transparent"
stroke="green"
stroke-width="3"
stroke-dasharray="33 67"
stroke-dashoffset="25"></circle>
<!-- second chart to start at 60% and go to 90% -->
<circle class="donut-segment"
cx="21"
cy="21"
r="15.91549430918954"
fill="transparent"
stroke="red"
stroke-width="3"
stroke-dasharray="33 67"
stroke-dashoffset="-9"></circle>
</svg>
</div>
如何在步骤之间添加空格?我还需要从甜甜圈的顶部开始添加渐变背景色,有什么帮助吗?
解决方案
推荐阅读
- python - 我的两个函数不能正常工作,IDE 不显示错误或崩溃
- arduino - ESP32/Arduino IDE:使用 ESPHttpUpdate 的 OTA 不断重启
- angular - 升级 Angular - 两个或更多项目使用相同的根警告
- scala - 如何在 spark scala 中保存数据帧之前对 spark 中的列进行分区并删除同一列
- android - Android Okhttp 隐藏内容编码:标头中的 gzip
- flutter - 如果我们从子屏幕导航到父屏幕(使用应用栏中的后退按钮),颤动会调用子屏幕吗?
- r - 有没有办法将几个 excel 文件从 Dropbox 文件夹加载到 R-shiny 应用程序中?
- javascript - 如何在单个标记 vue 传单上使用两个标记道具
- php - (HY000/2002): 无法连接,因为目标机器主动拒绝
- ios - 从核心数据中获取子数