как собрать все круговые диаграммы в одну строку?

#javascript #html #css #canvas #charts

#javascript #HTML #css #холст #Диаграммы

Вопрос:

Я использую Chart.js для моего веб-сайта.
Я пытаюсь собрать все диаграммы в один ряд, но я не понял, как это сделать с его помощью.
Я пытался использовать встроенный блок в нескольких вариантах, но все равно это не сработало.
Вот пример диаграмм.

введите описание изображения здесь

HTML, CSS и js-код приведены ниже:
html

 <div class="chart-container">
  <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
</div>
  

CSS

 .chart-container{
  display:inline-block;
  width: auto;
  height: auto;
}
.myCanvas{
display: inline-block;
width: auto;
height: auto;
}
  

js

 function createChart(data, id,i) {
  addCanvas(id); // some id generated by you or sent by the user
  generateChart(data, id,i); // data from the user
}

function addCanvas(id) { // create the new canvas
  let canvas = document.createElement('canvas');
  canvas.id=id;
  canvas.classList.add('myCanvas');
  canvas.style = "width:20px; height:20px;";

  document.body.appendChild(canvas); // adds the canvas to the body element
  document.getElementsByClassName('chart-container')[0].appendChild(canvas);
}

function generateChart(data, id,i) { // initialize the new chart
  let piechart = $("#"   id);
  let data1 = {
    labels: namesArr,
    datasets: [
      {
        label: "Population (millions)",
        backgroundColor:
        ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850","#3cba9f"],
        data: data
      }
    ]
  };
  let chart = new Chart(piechart,{
    type:"pie",
    data : data1,
    options: {
      title: {
        display: true,
        text: itemsArr[i]
      }
    }
  });
  chart.canvas.parentNode.style.height = '200px';
  chart.canvas.parentNode.style.width = '200px';
}
  

Ответ №1:

Нет фрагмента или рабочего примера, но попробуйте это:

 .chart-container {
  display: flex;
  justify-content: space-around; /* or space-between, center, depends on your needs */
}
  

При display: flex включенном он имеет flex-direction: row значение по умолчанию, поэтому он не нужен. Но если вы хотите, чтобы в будущем это было в виде столбца, добавьте flex-direction: column .