【发布时间】:2018-07-09 19:51:08
【问题描述】:
.small-container { width: 200px; }
.small-container > div { margin: 16px; }
.border { box-shadow: 0 0 2px 2px black; }
.break-long-text {
width: 100%;
word-wrap: break-word;
overflow-wrap: break-word;
}
.grid-fr {
display: grid;
grid-template-columns: 1fr;
}
.grid-minmax {
display: grid;
grid-template-columns: minmax(120px, 1fr);
}
<div class="small-container">
<div class="grid-fr">
<div class="break-long-text border">
LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONG
</div>
</div>
<div class="grid-minmax">
<div class="break-long-text border">
LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONG
</div>
</div>
</div>
这两个网格完全一样,唯一不同的是grid-template-columns的值。但是,一个网格尊重其父级 (200px) 的宽度,而另一个则忽略宽度。
grid:
grid-template-columns: 1fr;=> 忽略父宽度并继续直到内容被填满grid:
grid-template-columns: minmax(120px, 1fr);=> 只上升到父宽度 (200px) 然后变得尽可能高。但是,它仍然大于定义的最小宽度(120px),这当然是正确的,因为在本例中1fr大于120px。
由于最后两者应该具有相同的宽度1fr,我想知道不同的结果。这是错误还是预期行为?为什么第二个网格按我预期的方式工作,而不是第一个?
如果我不希望一个单元格大于其父单元格,我是否应该始终使用minmax?
【问题讨论】: