将弹性项目定位在最后一行或特定行

新手上路,请多包涵

我的问题是我想要具有可变范围宽度的 flexbox,并且一切正常,但不是在最后一行。我希望所有孩子都有相同的尺寸,即使该行没有孩子(最后一行)。

 #products-list {
    position:relative;
    display: flex;
    flex-flow: row wrap;
    width:100%;
}

#products-list .product {
    min-width:150px;
    max-width:250px;
    margin:10px 10px 20px 10px;
    flex:1;
}

jsFiddle 中创建了动态情况

我的 flex div 可以缩小到 150px 并增长到 250px,但所有尺寸都必须相同(显然我想要一个 CSS 解决方案,我知道 JS 的方式)。

原文由 Baro 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 376
2 个回答

不幸的是,在当前的 flexbox 迭代中(级别 1),没有干净的方法来解决最后一行对齐问题。这是一个常见的问题。

按照以下方式设置 flex 属性会很有用:

  • last-row
  • last-column
  • only-child-in-a-row
  • alone-in-a-column

这个问题似乎是 Flexbox Level 2 的高优先级问题:

虽然这种行为在 flexbox 中很难实现,但在 CSS Grid Layout 中很简单:

如果 Grid 不是一个选项,这里有一个包含各种 flexbox hacks 的类似问题列表:

原文由 Michael Benjamin 发布,翻译遵循 CC BY-SA 4.0 许可协议

作为一种快速而肮脏的解决方案,可以使用:

 .my-flex-child:last-child/*.product:last-child*/ {
  flex-grow: 100;/*Or any number big enough*/
}

原文由 Boris D. Teoharov 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题