今回はCSSだけで円グラフを作成してみました。
まずはデモから。
See the Pen
by sayuri (@giraffeweb)
on CodePen.0
それぞれ説明していきます。
▼HTML
<div class="per c100 p50"> <span>50%</span> <div class="slice"> <div class="bar"></div> <div class="fill"></div> </div> </div>
▼SCSS
.per { &.c100 { position: relative; width: 160px; height: 160px; border-radius: 50%; background-color: #ddd; margin: 0 2em 0 0; } &:after{ position: absolute; top: 10px; left: 10px; display: block; content: " "; border-radius: 50%; background-color: #fff; width: 140px; height: 140px; } }
ここで大枠の高さと幅を決定します。
円グラフの大小はここで調整してください。
afterではドーナツの穴の部分を作成しています。
大枠の幅に合わせて、高さと
幅のサイズを調整してください。
.per { &.c100 { span { position: absolute; width: 100%; z-index: 1; left: 0; top: 0; width: 160px; line-height: 160px; font-size: 0.2em; color: #000; display: block; text-align: center; white-space: nowrap; font-size: 18px; font-weight: 600; } } }
span内はパーセンテージの文字部分の指定です。
円グラフのなかに表示されるように調整しているので
位置を変更したい場合はここを触ってください。
.slice { position: absolute; width: 160px; height: 160px; .bar { position: absolute; width: 160px; height: 160px; border-radius: 50%; background-image: radial-gradient(#ddd 30%, transparent 31%), conic-gradient(#ff2200 0% 35%, #ddd 35% 100%); } }
sliceで幅と高さを指定して、中の円グラフのパーセンテージを表す円の指定を
barクラスで行います。
円グラフについては「radial-gradient」と「conic-gradient」を使用します。
詳しい解説はここでは避けますが、グラデーションの種類の一種です。
グラデーションを利用して、円グラフを作成します。
conic-gradientは中心点の周りを回りながら色が変化する画像を生成します。
そのため、「conic-gradient(#ff2200 0% 35%, #ddd 35% 100%)」で全体の背景色とパーセンテージ部分の色と割合を指定します。
みなさんもぜひCSSだけで円グラフの作成をしてみてくださいね!