簡單介紹使用純 CSS 製作圓形進度條的方法,首先我們準備這樣的 HTML :
<div class="circle">
<div class="circle-inside">
60%
</div>
</div>
要製作圓形進度條會利用到錐狀漸層(conic-gradient)的設定,可以參考之前的文章。只要把兩個顏色的角度設定一樣,就會畫出一個圓餅圖,像是:
.circle{
--width: 200px;
--percent: 60;
--deg: calc(360deg * calc(var(--percent) / 100));
width: var(--width);
height: var(--width);
border-radius: 50%;
margin: 0px auto;
background-image: conic-gradient(red var(--deg), #ccc var(--deg));
position: relative;
}
這裡我用到 CSS 的變數和 calc() 來去讓 code 更有彈性。
接著再把數據和圓形蓋上去,就可以看到環狀的進度條了,一樣使用變數和 calc 增加樣式上的彈性。
.circle-inside{
--bar-width: 30px;
position: absolute;
display: flex;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
border-radius: 50%;
background: #eee;
width: calc(var(--width) - var(--bar-width));
height: calc(var(--width) - var(--bar-width));
align-items: center;
justify-content: center;
font-size: 32px;
}
結果如下:

完整程式碼: