Flex 具有一个固定宽度的列和一个必须填充剩余空间的流体列[重复]

Posted

技术标签:

【中文标题】Flex 具有一个固定宽度的列和一个必须填充剩余空间的流体列[重复]【英文标题】:Flex with one fixed width column and one fluid column that must fill the remaining space [duplicate] 【发布时间】:2021-06-24 07:02:30 【问题描述】:

在 CSS 中有没有办法让一列具有固定宽度,第二列填充行中剩余的空间?

.container 
  display: flex;
  border: 1px solid blue;


.col1 
  height: 100px;
  flex: 0 0 80px;
  background: red;


.col2 
  height: 100px;
  background: green;

我怀疑纯 CSS 不可能,但如果有解决方案,那么解决方案是什么?

JSFiddle

【问题讨论】:

flex-grow: 1 添加到.col2 哦,可以,谢谢!如果你回答我会接受。 有人已经发布了答案,您应该接受它作为答案:) 是的,他是在我发表评论后 3 分钟发布的,所以我猜他在我发表评论时正在写答案:) 谢谢大家! 【参考方案1】:

使用flex 速记属性,您可以在.col2 上使用flex: 1,它指定flex-grow 值。您也可以像@Yousaf 提到的那样,使用flex-grow: 1 明确定义flex-grow 值。

flex-grow CSS 属性设置弹性项目 main 大小的弹性增长因子。换句话说,flex-grow 使弹性项目占据了主轴上的所有空闲空间。

.container 
  display: flex;
  border: 1px solid blue;


.col1 
  height: 100px;
  flex: 0 0 80px;
  background: red;


.col2 
  height: 100px;
  background: green;
  flex: 1;
  /* flex-grow: 1; This also works! */
<div class="container">
  <div class="col1"></div>
  <div class="col2"></div>
</div>

【讨论】:

以上是关于Flex 具有一个固定宽度的列和一个必须填充剩余空间的流体列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

反应原生布局固定宽度并拉伸剩余空间

在 CSS 中,如何获得一个左侧固定宽度的列和一个使用其余宽度的右侧表格?

是否可以有一个具有固定高度但可变宽度的元素的列流网格?

具有固定列和流动列的 CSS 布局

使用 flexbox,我可以有 1 个固定宽度的列和 1 个占用其余宽度的列吗? [复制]

使用与具有不同列数的另一个QGridLayout相同的列间距