【CSS】CSSだけで円グラフを作る

CSSだけで円グラフを作ってみたいと思います。今回はCSSのconic-gradient関数がキーポイントになります。

CSSだけで円グラフを作ってみる

完成イメージはこんな感じ。
CSSだけで円グラフを作ってみたいと思います。
キーポイントになるのは、%数に合わせたグラフの制作方法になるかと思います。

グラフを作成する

まずは文字が入っていない円グラフのみを作成してみましょう。

HTML

HTMLはこんな感じです。
クラス名は「circle」でも「pie」でも。

<div class="circle"></div>

CSS

「border」や「box-shadow」はあくまで見た目で付けているので、円グラフだけを作る上では不要なコードです。
重要なのは「conic-gradient」で、中心点の周りを回りながら色が変化する画像を生成する関数です。
0~70%の色は#46b0be、70~100%の色は#e4e4e4と設定しています。

.circle{
 width: 350px;
 height: 350px;
 background: conic-gradient(#46b0be 0% 70%, #e4e4e4 70% 100%);
 border-radius: 50%;
 border: 6px solid #f9f7f7;
 box-shadow: 0px 0px 15px #878869;
}

グラフが出来上がりました

これで円グラフが出来当たりました!

円グラフに文字を入れる

それでは円グラフに「70%」という文字を入れてみましょう。

HTML

HTMLはこんな感じ。
先ほどのHTMLにpを追加。%を小さくしたいのでspanで囲みました。

<div class="circle">
 <p>70<span>%</span></p>
</div>

CSS

文字を真ん中に寄せるために、flexを追加しました。

.circle{
 width: 350px;
 height: 350px;
 background: conic-gradient(#46b0be 0% 70%, #e4e4e4 70% 100%);
 border-radius: 50%;
 border: 6px solid #f9f7f7;
 box-shadow: 0px 0px 15px #878869;

 display: flex;
 justify-content: center;
 align-items: center;
}

.circle p{
  text-shadow: 2px 2px 5px #21737e;
  font-weight: 700;
  font-size: 6rem;
  color: #fff;
}

.circle p span{
  font-size: 2rem;
}

完成!

これで完成しました。

Pの部分は背景色を入れてborder-radiusを50%で円背景色にするとか、デザイン的にも色々できそうな感じです。

CSSコーディングのオススメ本

CSS辞典 第5版 [CSS2/3/4対応]

本書は、Webデザインに必須の技術「CSS」の文法リファレンスです。大幅改訂となる第5版は、現時点の最新状況を反映し、Web制作を学ぶなら必ず押さえておきたい基本のCSS2.1、仕様の策定とブラウザでの実装が進められているCSS3、さらにはその次の規格であるCSS4(Level4モジュール)まで掲載しています。

Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 Web制作者のための教科書シリーズ

予測しやすい、保守しやすい、最利用しやすい、拡張しやすい―コンポーネントやCSSプリプロセッサを意識した設計・管理の実践など、「ちゃんとCSSを書く」ためのプロの考え方を徹底解説!

1冊ですべて身につくHTML&CSSとWebデザイン入門講座

知識ゼロから体系的に学べる!HTMLとCSSの基本。最新の技術に対応!レスポンシブ、Flexbox、CSSグリッド。手を動かしながら学べる!プロの現場で役立つテクニック。コードの知識からデザインのことまで1冊ですべて学べる!

初心者からちゃんとしたプロになる HTML+CSS標準入門

HTML&CSSの使い方が全部わかる。プロを目指すなら、最初に選ぶ本!