css - 为什么 flex 容器 `flex: 1 0 0px` 在 Chrome 上崩溃了?

标签 css google-chrome flexbox

在 Chrome 上,我遇到了我不理解的 Flexbox 行为。当同时也是 flex 容器的 flex 子元素具有 flex: 1 0 0px 时,它会折叠自身及其内容。

即使 flex-basis 设置为 0px,据我所知将 flex-grow 设置为 1(flex 简写中的第一个数字)应该在需要时使元素增长。

在我的示例中,.bottom-containerheight 设置为 300px。该 height 在 Firefox 上受尊重,但在 Chrome 上折叠为 0px。为什么?

.top-container {
  display: flex;
  flex-flow: column nowrap;
}

.middle-container {
  flex: 1 0 0px;
  display: flex;
  flex-flow: column nowrap;
}

.bottom-container {
  flex: 0 0 auto;
  height: 300px;
}
<div class="top-container">
  <div class="middle-container">
    <div class="bottom-container"></div>
  </div>
  <div class="middle-container">
    <div class="bottom-container"></div>
  </div>
</div>

最佳答案

问题出在 flex-basis 组件上。

当你有 flex-basis: 0 时,Chrome 和 Firefox 计算为 flex-basis: 0px

但是,像素值会破坏您在 Chrome 中的布局。

相反,为了跨浏览器的兼容性,使用这个:

flex: 1 0 0%

关于css - 为什么 flex 容器 `flex: 1 0 0px` 在 Chrome 上崩溃了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47040371/

相关文章:

css - 在 <td> HTML 上稍微覆盖图像

javascript - 内容更改后如何使 onload 脚本再次工作

java - 在 Chrome 浏览器上删除 NPAPI 后替代 Jzebra/QZ Java Raw Print Plugin

html - 如何在Web音频上下文中更改源

html - 将 flexbox 高度限制为浏览器窗口(目前它溢出导致垂直滚动)

JQuery 更改 Sharepoint 列表中整行文本的颜色

javascript - JQuery - Div 没有滑出屏幕

html - 为什么 Chrome 在页面缩放时不放大 div 的宽度/高度?

html - 强制 flexbox 列在 `flex-direction: column` 容器上相等

html - 为什么 flex 元素不缩小过去的内容大小?