我正在尝试使用flexbox创建一个2列布局。一个是侧面固定宽度,另一个(主柱)填充剩余空间。
直到我将一些内容放在比overflow-x: scroll
父级的屏幕更广的内容之前一直工作。现在,这个广泛的内容不受其滚动父级的限制。
以下是示例:
.container {
display: flex;
}
.container .col-main {
background: gold;
flex: 1 1 100%;
}
.container .col-side {
background: cornflowerblue;
flex: 0 0 15em;
}
.slider-container {
overflow-x: scroll;
}
.slider-container .slider {
background: repeating-linear-gradient(45deg, darkseagreen, darkseagreen 10px, dimgray 10px, dimgray 20px);
width: 150em;
height: 10em;
}
<div class="container">
<div class="col-main">
<div class=slider-container>
<div class="slider">
Foo
</div>
</div>
</div>
<div class="col-side">
Side
</div>
</div>
答案 0 :(得分:4)
尝试将min-width: 0;
添加到弹性项目。
.container .col-main {
...
min-width: 0;
}
<强> jsFiddle 强>
4.5. Implied Minimum Size of Flex Items
为了为flex项提供更合理的默认最小大小,此规范引入了一个新的
auto
值作为CSS 2.1中定义的min-width
和min-height
属性的初始值。 [CSS21]
答案 1 :(得分:3)
您可以将width: 0
添加到容器中。
.container {
display: flex;
}
.container .col-main {
background: gold;
flex: 1 1 100%;
width: 0;
}
.container .col-side {
background: cornflowerblue;
flex: 0 0 15em;
}
.slider-container {
overflow-x: scroll;
}
.slider-container .slider {
background: repeating-linear-gradient(45deg, darkseagreen, darkseagreen 10px, dimgray 10px, dimgray 20px);
width: 150em;
height: 10em;
}
<div class="container">
<div class="col-main">
<div class=slider-container>
<div class="slider">
Foo
</div>
</div>
</div>
<div class="col-side">
Side
</div>
</div>