今回はchart.jsで高さを固定する方法をご紹介
■ Chart.jsとは
JavaScriptのフレームワークです。
HTMLのcanvas上に、JavaScriptを用いて
折れ線グラフや円グラフ等を簡単に記述するものです。
基本的に横幅でheightのサイズが決まるので、
CSSから高さの指定が出来ない仕様となっています。(多分)
今回はその高さをJavaScript側から設定してしまう方法です
※今回はちょっとややこしい&ニッチな内容なので、
コードだけ置いておきます。
コメントで色々と解説しているので、
解読出来るかと思います👾
■ HTML
<!DOCTYPE html>
<html lang="en">
<head>
<!-- chart.jsの読み込み -->
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.1.1/dist/chart.min.js"></script>
<style>
/* 外枠 */
.container {
border: solid;
height: 600px;
width: 600px;
}
/* canvasの親要素 */
.chart-container {
border: solid pink;
height: 500px;
width: 500px;
}
</style>
</head>
<body>
<!-- あくまで外枠なので、影響なし -->
<div class="container">
<!-- canvasの親要素 今回は、このサイズに合わせてグラフを描画 -->
<div class="chart-container">
<!-- ここのcanvasに描画される -->
<canvas id="my-chart"> Canvas not Supported/.... </canvas>
</div>
</div>
<script>
(function () {
"use strict";
/* グラフの設定 */
var type = "line"; // 折れ線グラフ
var data = {
labels: [0, 1, 2, 3], // 横軸の値
datasets: [
// 赤色の折れ線
{
label: "AAAA", // ラベル名
data: [100, 200, 600, 350], // 実際のデータ
borderColor: "red", // 折れ線の色
lineTension: 0, // 折れ線のテンション
},
// 青色の折れ線
{
label: "BBBB", // ラベル名
data: [-10, 500, 245, 360], // 実際のデータ
borderColor: "blue", // 折れ線の色
lineTension: 0, // 折れ線のテンション
},
],
};
const option = {
// 以下の2つはレスポンシブにグラフを描画するために必要(らしい)
responsive: true,
maintainAspectRatio: false,
};
// HTMLのcanvas要素とリンクさせる。"2d"は二次元の意。
const ctx = document.getElementById("my-chart").getContext("2d");
/* 今回のポイント */
// canvasの高さを親要素の100%に設定する
// CSSでなく、ここで設定しなければ反映されない
ctx.canvas.height = "100%";
/* グラフの描画 */
const myChart = new Chart(ctx, {
type: type,
data: data,
option: option,
});
})();
</script>
</body>
</html>
このよう親要素であるピンクの枠線ぴったりに
高さが設定されました。
Chart.jsって情報が若干少ないので参考になると思います。
現場からは以上です!