我有三栏;中间有一个主柱,两侧各有两个。两侧栏的宽度根据其内容而变化 - 其中一栏甚至可能是空的。我希望中间栏的内容能够增长,同时保持两侧栏的宽度。
这是我的尝试的片段:
.row {
width: 100%;
display: grid;
align-items: center;
justify-items: space-between;
grid-template-columns: 1fr auto 1fr;
gap: 16px;
}
.row > * {
background-color: #ccccff;
height: 40px;
}
.middle {
overflow-x: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
<div class="row">
<div class="right">Hello</div>
<div class="middle">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </div>
<div class="left">X</div>
</div>
我想要实现的是“Hello”和“X”列具有相同的宽度,而无需手动指定恒定的最小宽度(使用类似
minmax(100px, 1fr)
的内容),这样无论内容在中间,它始终位于屏幕中央。当中间列中的内容有点短时,上面的代码片段工作正常,但我希望两侧的列保持其宽度,即使中间列增长也是如此。有没有办法使用 CSS Grid、Flexbox 或其他方法来做到这一点? (除了 JavaScript)
您应该尝试使用 minmax 例如:
grid-template-columns: minmax(0, 40px) auto minmax(0, 40px);
根据需要更改像素。 这里是您需要更多信息时的参考。