Flexbox 行:不根据内容增长? [复制]

Posted

技术标签:

【中文标题】Flexbox 行:不根据内容增长? [复制]【英文标题】:Flexbox row: doesn't grow according to content? [duplicate] 【发布时间】:2019-01-30 03:21:12 【问题描述】:

我有以下结构,我想了解为什么我的行不随其内部内容增长。

.row 
  border:solid red;
  display: flex;
  flex-direction: row;



.cell 
  border: solid green;
  flex: 0 0 400px;
<div class="row">
  <div class="cell">
   cell 1
  </div>
  <div class="cell">
   cell 2
  </div>
  <div class="cell">
   cell 3
  </div>
</div>

JsFiddle

我不希望单元格增长或缩小,它们应该始终为 400 像素宽度。父级应该增长并溢出窗口,并且需要一个水平滚动条。

在上面的例子中,红色边框应该在绿色边框周围。绿色边框具有预期尺寸,而不是红色边框。

出于与我的用例相关的可维护性原因,我不想为我的行设置静态宽度。

我对非 flexbox 解决方案持开放态度(请参阅 inline-block attempt),但更希望使用 flexbox 解决方案(因为我需要 align-items: center 行为)

【问题讨论】:

试试这个:***.com/questions/33891709/… @DanielBernardi 我觉得这无关,我没有列而不是 flexwrap 行为。请问为什么要链接到这个答案? flex: 0 0 400px 你已经明确告诉它不要增长或收缩,并且是 400px 宽。为什么要使用 flexbox? 你读过this的问题吗?还是这个one?您可以使用display: inline-flex 而不是仅使用flex,然后将width: 400px 用于.cell,删除flex: 0 0 400px 以实现您所需要的。 @pazitos10 实际上这就是我要找的东西,也许你可以发布一个答案? jsfiddle.net/slorber/v6xp917z/25 【参考方案1】:

如果您希望您的容器始终与其子容器的宽度相匹配,您需要查看display: inline-flex

display: flex 的行为更像是一个宽度为 100% 的容器

这是一个应该工作的小提琴: http://jsfiddle.net/hnrs64fm/

【讨论】:

解决方案并不是真正的inline-flex,因为您还必须从flex-basis 切换到width 才能使布局生效。这个问题实际上是一个浏览器错误。 感谢@Michael_B,您提供的链接有助于解决这个简单的 js fiddle。不幸的是,我的全局布局仍然存在问题,这是一个相关的问题:***.com/questions/52000363/…

以上是关于Flexbox 行:不根据内容增长? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 flexbox 中的宽高比 CSS 属性有时会被忽略? [复制]

Safari 中的 Flexbox:增长和缩小

Flexbox:根据行数交替“行”和“行反向”

单个部分上的 Flexbox

当 flexbox 内容垂直居中时如何修复滚动? [复制]

Bootstrap flexbox,2 行,1 列布局和对齐内容