css - flex 元素超出其容器

标签 css flexbox

我有一个定义了宽度的 flex 容器。容器有 flex-direction: row 和 2 列。一种是固定宽度,不灵活。另一个是灵活的,应该适合所有容器的剩余空间。

当灵活列内容足够长时,它会溢出容器,超出其宽度。

为什么会发生这种情况?我应该如何正确修复它?

注意:我已经通过使用 flex: 1 0 0 而不是 1 0 auto 解决了这个问题,它会很好。但我只是不明白为什么它停止超出父级 以及为什么它开始包装内容?这甚至是正确的方法吗?

HTML:

<div class="flex-container">
  <div class="flex-item inflexible">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit.
  </div>
  <div class="flex-item flexible">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. 
  </div>
 </div>

CSS:

.flex-container {
  display: flex;
  flex-direction: row;
  width: 500px;
  background-color: green;
}

.flex-item {
  display: block;
  margin: 20px 0;
}

.inflexible {
  flex: 0 0 auto;
  width: 100px;
  background-color: red;
}

.flexible {
  flex: 1 0 auto;
  background-color: blue;
}

JSFiddle

最佳答案

为达到预期效果,还要为 .flexible 类指定宽度

.flexible { 
    flex: 1 0 auto; 
    width: 200px;
    background-color: blue; 
    word-wrap: break-word;
}

http://codepen.io/nagasai/pen/LkJzLz

关于css - flex 元素超出其容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38723559/

相关文章:

css - jquery ui 选项卡的导航菜单对齐问题

html - 页脚未生成页面的 100% 宽度

javascript - 将输入更改为图像并使其可点击

html - 元素之间的适当间距

html - 对齐不适用于所有子菜单项

基于宽度的CSS选择器?

react-native - RN : Center spinner using flexbox?

css - 如何在 CSS/Bootstrap 中水平堆叠/对齐图像而不考虑方向?

css - flexbox子项中的行高或垂直对齐

html - 为什么我的容器不是垂直和水平居中对齐