flexbox - 一个 flexbox 容器中的两个饼图
问题描述
我正在设计一个仪表板,我想在其中将两个饼图放在一个 flexbox 容器中......它显示第二个,一个隐藏,有时当我将鼠标悬停在第二个上时,第一个出现在第二个的顶部.. . 我的代码
<section id="pie-charts">
<canvas id="trans-status-chart" width="400" height="300"></canvas>
<canvas id="targeted-gender-chart" width="400" height="300"></canvas>
</section>
我的CSS:
#pie-charts{
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
#trans-status-chart{
width: 45% !important;
height: auto !important;
}
#targeted-gender-chart{
width: 45% !important;
height: auto !important;
}
解决方案
Chart.js 需要一个“独占”的父元素来确保它可以正确调整自身大小。这实际上意味着您需要将所有canvas
元素包装在相对定位的div
.
这是一个例子:
new Chart(document.getElementById('trans-status-chart'), {
type: 'pie',
data: {
datasets: [{
data: [43, 20, 44]
}]
},
options: {}
});
new Chart(document.getElementById('targeted-gender-chart'), {
type: 'pie',
data: {
datasets: [{
data: [55, 82, 32]
}]
},
options: {}
});
#pie-charts {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
#pie-charts>div {
width: 45% !important;
height: auto !important;
position: relative;
}
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.3/dist/Chart.min.js"></script>
<section id="pie-charts">
<div><canvas id="trans-status-chart" width="400" height="300"></canvas></div>
<div><canvas id="targeted-gender-chart" width="400" height="300"></canvas></div>
</section>
推荐阅读
- python - 复制对象时调用方法
- memory - 2篇文章中提到的“虚拟内存”是指不同的东西吗?
- c# - 角度登录“异常:关联失败。未知位置”
- python - 如何单击热键并同时键入字符串?
- c# - SaveChanges vs SaveChangesAsync 基准测试:奇怪的结果
- php - 如何在 Twig/Timber 中制作 wordpress 帖子列表页面?
- react-native - Refreshcontrol 重新加载所有子组件
- opengl - 将某些顶点检索到 CPU 中最快的跨平台方法是什么?
- c# - 我可以在 DataAnnotations.StringLength 中使用除数字之外的其他属性参数吗?
- angular - 角度性能,具有特定路径的导入