Ich verwende Chart.js mit einem einfachen Liniendiagramm, aber die von Chart.js berechneten Eigenschaften für Breite und Höhe scheinen auf der Gesamtbreite und -höhe des übergeordneten Elements zu basieren, das das Padding ignoriert.Warum berücksichtigt chart.js den Inhalt des Containerelements nicht?
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>
Der zweite Behälter und Kind zeigt das Verhalten ich erwarte. Ist dies ein Fehler bei der Berechnung der Breite und Höhe der Zeichenfläche durch Chart.js oder mache ich einen Fehler beim Formatieren?
Dies scheint der einfachste Weg zu sein, um das Problem zu umgehen. – Hawk
Schöne einfache Lösung. Funktioniert super! – Jaffer
Diese Lösung ist einfach und hilft mir, das Donut-Diagramm größer zu machen