Tôi đang sử dụng Chart.js với biểu đồ dạng đường đơn giản nhưng các thuộc tính chiều rộng và chiều cao được tính toán bởi Chart.js dường như dựa trên tổng chiều rộng và chiều cao của phần tử gốc bỏ qua phần đệm.Tại sao canvas chart.js không tôn trọng phần đệm của phần tử vùng chứa?
var options = {
maintainAspectRatio: false,
responsive: true
};
var data = {
labels: ["", "", "", "", "", "", ""],
datasets: [
{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 80, 81, 56, 55, 40]
},
{
label: "My Second dataset",
fillColor: "rgba(151,187,205,0.2)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(151,187,205,1)",
data: [28, 48, 40, 19, 86, 27, 90]
}
]
};
var ctx1 = document.getElementById("mychart1").getContext("2d");
var myNewChart = new Chart(ctx1).Line(data, options);
.container {
padding: 15px 15px 15px 15px;
width: 300px;
height: 200px;
border: 1px solid black;
}
.child {
display: inline-block;
border: 1px solid red;
width:100%;
height:100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.1.1/Chart.js"></script>
<div class='container'>
<canvas id='mychart1' class='child'></canvas>
</div>
<br>
<div class='container'>
<div class='child'>test</div>
</div>
container thứ hai và đứa trẻ thể hiện hành vi của tôi đang mong đợi. Đây có phải là lỗi về cách Chart.js tính toán chiều rộng và chiều cao của canvas hoặc tôi có mắc lỗi về kiểu dáng không?
Đây có vẻ là cách dễ nhất để giải quyết vấn đề. – Hawk
Sửa lỗi đơn giản. Hoạt động tuyệt vời! – Jaffer
Giải pháp này rất đơn giản và giúp tôi làm cho biểu đồ bánh rán lớn hơn