python - 当我使用 CSS 网格运行 Dash App 时,它表现得很奇怪
问题描述
我的代码需要一些帮助,我认为最好从 Github 分享我的代码。我创建了一个名为 css_problem_branch 的单独分支来显示我遇到的问题。
链接到 Github 存储库:https ://github.com/sebastian-meckovski/Covid19-visualisation/tree/css_problem_branch
我尝试重新创建的简单网格布局可以在 CssGrid 文件夹中找到,它是使用简单的 HTML 元素完成的,并且可以正常工作。这只是为了展示我正在尝试重新创建的内容。
但是,当我在 assets 文件夹中使用完全相同的 CSS 时,Web 应用程序开始表现得很奇怪。当我减小浏览器的宽度时它不会重新组织网格,当我减小它时容器元素的宽度变得非常大(这适用于纯 HTML 元素)
可能是什么原因,我该如何解决?
解决方案
解释可能发生的事情
我认为您遇到的问题是人们所说的一个实例grid blowout
。
基本上发生的事情是网格的孩子占用了太多空间,导致列被推到右边。
因此,您在仅 html 的小型示例中没有遇到问题的原因是子级只是div
其中包含少量文本的元素。
Dash
然而,正如您所经历的那样,您的应用程序中的图表可能会变得非常大。
为了解决这个问题,我们可以使用minmax css 函数为列设置一个受限制的大小范围:
问题的解决方案
而不是这个:
.container {
display: grid;
height: 100vh;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr 1fr;
grid-template-areas:
"content0 content0"
"content1 content1"
"content2 content3"
"content4 content4";
grid-gap: 2px;
}
@media only screen and (max-width: 600px) {
.container {
grid-template-columns: 1fr;
grid-template-rows: 0.1fr 1fr 1fr 1fr 1fr;
grid-template-areas:
"content0"
"content1"
"content2"
"content3"
"content4";
}
}
尝试这个:
.container {
display: grid;
height: 100vh;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: 1fr 1fr 1fr 1fr;
grid-template-areas:
"content0 content0"
"content1 content1"
"content2 content3"
"content4 content4";
grid-gap: 2px;
}
@media only screen and (max-width: 600px) {
.container {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: 0.1fr 1fr 1fr 1fr 1fr;
grid-template-areas:
"content0"
"content1"
"content2"
"content3"
"content4";
}
}
使用的来源(比我在这里更深入地解释这个话题):
推荐阅读
- formula - LibreOffice:如何根据条件增加数字
- php - 如何检查数据库中是否存在元素并返回警告消息?
- google-cloud-vision - 限制 Google Cloud Vision 的字符集
- pine-script - pine脚本如何在每个会话开始时将barssince重置为零
- java - Java - 使用泛型类型
- sql-order-by - Keep the first row id using qualify in Teradata
- c++ - GTests not showing in VS19 test explorer
- node.js - 节点/快递:GET 请求 - 304
- python - Labels not getting printed in line charts
- vb.net - 在面板中滚动会冻结整个计算机