css - 按百分比填充圆形边框
问题描述
我尝试实现几个指南来创建一个根据百分比填充的圆圈,但我似乎无法让它工作(没有动画,只有一个静态的 CSS 圆圈)。
圆形边框当前遵守background-image: linear-gradient
我首先设置为 a(90+(360*0.percent))deg
和第二个设置为90deg
. 它在前 50% 上运行良好,但除此之外,它不会相应地填充。
.circle {
position: relative;
top: 5px;
left: 5px;
text-align: center;
width: 100px;
height: 100px;
border-radius: 100%;
background-color: #ffffff;
}
.circle-border {
position: relative;
text-align: center;
width: 110px;
height: 110px;
margin-left: 30%;
border-radius: 100%;
background-color: #E53B3B;
background-image: linear-gradient(162deg, transparent 50%, #f0f0f0 50%), linear-gradient(90deg, #f0f0f0 50%, transparent 50%);
}
<div class="circle-border">
<div class="circle">
</div>
</div>
linear-gradient
当我希望圆圈填充超过 50% 时,应该更改哪些值?
解决方案
对于第一个线性部分,您可以linear-gradient:(270deg,...)
用于填充 50% 的圆。
对于其他线性部分,您可以增加角度(270°+)以填充 50% 以上的圆(360° 或 0° = 圆的 75% ... 90° = 圆的 100%)
例如:linear-gradient(270deg, black 50%, transparent 50%), linear-gradient(0deg, black 50%, lightgray 50%)
组合创建一个带有浅灰色背景的圆圈,其中填充了百分之七十五的黑色。(以下片段)
.circle {
position: relative;
top: 5px;
left: 5px;
text-align: center;
width: 100px;
height: 100px;
border-radius: 100%;
background-color: #ffffff;
}
.circle-border {
position: relative;
text-align: center;
width: 110px;
height: 110px;
margin-left: 30%;
border-radius: 100%;
background-color: #E53B3B;
background: linear-gradient(270deg, black 50%, transparent 50%), linear-gradient(0deg, black 50%, lightgray 50%)
}
<div class="circle-border">
<div class="circle">
</div>
</div>
推荐阅读
- excel - 下一个可用的产品代码取决于类别,没有重复
- python-3.x - Python - 在 Cognito 中列出用户池 - 过滤问题
- ios - 无法使用正则表达式获取全名
- css - 如何将图像放在页面顶部的中间?
- android - 从 FB 帖子打开 Android 应用程序
- android - 什么时候为 recyclerView 使用 hasStableIds true?
- android - 如何在android中检查驱动程序是否在路线上(Re_route Process)
- c++ - NRVO for C++ std::string
- c# - 所有用户和会话都使用相同的 asp.net sessionID
- sql - 如何构建丢弃重复数据的 SQL 查询?