我试图在CSS flexbox中将两个情节图拼接在一起。我希望它们在调整窗口大小时调整大小。当窗口变大时,它会按预期工作,但是当窗口变小时,图形不会收缩。
var trace1 = {};
var trace2 = {};
var plotdiv1 = document.getElementById("plotdiv1");
var plotdiv2 = document.getElementById("plotdiv2");
Plotly.newPlot(plotdiv1, [trace1]);
Plotly.newPlot(plotdiv2, [trace2]);
window.addEventListener("resize", function() {
Plotly.Plots.resize(plotdiv1);
Plotly.Plots.resize(plotdiv2);
});

.plot-div {
max-width: 100%;
}
.plot-col {
flex: 0 0 50%;
}
.my-container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
height: 100%;
}

<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<body>
<div class="my-container">
<div class="plot-col">
<div id="plotdiv1" class="plot-div"></div>
</div>
<div class="plot-col">
<div id="plotdiv2" class="plot-div"></div>
</div>
</div>
</body>
&#13;
JSFiddle:https://jsfiddle.net/bd0reepd/
我可能误解了flexbox的工作原理,但是如果我用图片替换这些图,它们会按预期收缩。
我试图调试它并找到了plotlys内部函数plotAutoSize
,它调用window.getComputedStyle
并相应地设置绘图大小。我使用console.log
来查看window.getComputedStyle
的返回值,他们得到了&#34;卡住&#34;窗口缩小时的最大尺寸。
如何让图形缩小以适合窗口并在同一行中保持彼此相邻?
答案 0 :(得分:80)
弹性项目的初始设置为min-width: 0
。这意味着默认情况下,弹性项目不能小于其内容。
您可以使用overflow
或visible
以.plot-col {
min-width: 0;
}
以外的任何值覆盖此设置。将其添加到您的代码中:
for