【发布时间】:2018-12-23 18:51:45
【问题描述】:
我使用 CSS Grid 布局来创建页面的基本布局,而我最初是在 Chrome 中工作的。我现在也在 Firefox 中对此进行了测试,发现了一些我不理解的行为,并且似乎不符合我理解的规范。
我创建了一个显示行为的简化示例。问题是搜索标题 div 的高度。这设置为 max-content 并且应该与包含的元素一样大。
这在 Chrome 66 中可以正常工作,但在 Firefox 52 ESR 或 Firefox 62 Developer Edition(都在 Linux 上)中不起作用。在 Firefox 中,search-header div 更大并且超出了包含的范围。仅当搜索边栏 div 中有输入元素时才会发生这种情况,并且我添加的输入元素越多,搜索标题 div 就越大。
我是否误解了 max-content 应该如何工作?为什么在这种情况下 Firefox 和 Chrome 的行为不同?我该如何解决这个问题?
.search {
display: grid;
grid-template-columns: minmax(200px, 1fr) 4fr;
grid-template-rows: max-content auto;
grid-gap: 10px;
height: 95vh;
width: 100%;
align-self: stretch;
background: #FFF;
overflow: hidden;
margin-top: 5px;
}
.search-sidebar {
grid-column: 1 / 2;
grid-row: 1 / 3;
background: #CCFFFF;
padding: 5px;
}
.search-header {
grid-column: 2 / 3;
grid-row: 1 / 2;
background: #FFCCCC;
padding: 5px;
}
.search-table {
grid-column: 2 / 3;
grid-row: 2 / 3;
background: #FFFFAA;
}
<div class="search">
<div class="search-sidebar">
<div>
<label>Label:</label>
<div><input type="text"></div>
</div>
<div>
<label>Label:</label>
<div><input type="text"></div>
</div>
<div>
<label>Label:</label>
<div><input type="text"></div>
</div>
</div>
<div class="search-header">
<span>some text here</span>
</div>
<div class="search-table"></div>
</div>
这是它在 Firefox 中的样子:
这就是它在 Chrome 中的外观,以及它的预期外观:
【问题讨论】:
-
乍一看,看起来像一个 Firefox 错误。但是将
auto替换为1fr以获取第二行大小似乎可以解决此问题。