我想要达到的目标:
使用 CSS Grid Layout ,让页面有一个右列,其大小来自其内容,但最多只有窗口宽度的 20%。
我认为它会如何工作:
div {
border-style: solid;
}
#container {
width: 300px;
height: 300px;
display: grid;
grid-template-columns: 1fr minmax(auto, 20%);
}
<div id="container">
<div>
some content
</div>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus eu leo ac ultrices. Vivamus ornare, orci sed pretium sollicitudin
</div>
</div>
看起来不错,但是当我删除第二个 div
的内容时,左列不会折叠:
div {
border-style: solid;
}
#container {
width: 300px;
height: 300px;
display: grid;
grid-template-columns: 1fr minmax(auto, 20%);
}
<div id="container">
<div>
some content
</div>
<div></div>
</div>
我的问题:
我的印象是,自从 minmax()
(…) 定义大于或等于 min 且小于或等于 max 的大小范围。
it would mean that in my case the width is set from auto
(= 0
when the div
is empty) to 20%
.然而,它保持在 20%。为什么会这样?
原文由 WoJ 发布,翻译遵循 CC BY-SA 4.0 许可协议
“fit-content 函数接受一个参数,即最大值。具有此属性集的网格列/行仍将根据其内容占用尽可能少的空间,但不会超过最大值。”
请参阅这篇文章: 成为 CSS Grid Ninja!
您可以解决您的问题,同时仍然使用基于百分比的最大值: