≪ Today I learned. RSS購読
公開日
タグ
CSS
著者
ダーシノ(@bc_rikko)

CSS Gridを使ったグラフ表示

CSS Grid Layoutが全主要ブラウザで利用可能になったことで、いままでCanvasやSVGでがんばっていたグラフ描画も、HTMLとCSSだけで簡単に実装できるようになった。HTMLでグラフが書けるメリットは、レスポンシブで、かつアクセシビリティに有効であるという点に尽きる。

CSS Grid Layoutを使ったグラフ描画を簡単に説明すると、columnやrowを100分割してパーセントをCSS変数で指定するという実装方法だ。

<figure>
  <dl class="graph">
    <div class="bar" style="--value: 83;">
      <dt>りんご</dt>
      <dd>1,234</dd>
    </div>
    <div class="bar" style="--value: 30;">
      <dt>みかん</dt>
      <dd>446</dd>
    </div>
  </dl>
  <figcaption>CSS Grid Graph</figcaption>
</figure>
.graph {
  display: grid;
  grid-template-columns: repeat(100, 1fr);
}

.bar {
  /* start位置を変更することで、widthより表現力の高いグラフが実装できる */
  grid-column-start: 1;
  grid-column-end: var(--value); 
}

デモ

果物の出荷数(サンプル情報)
りんご
4,150
みかん
1,600
ぶどう
2,350