【发布时间】:2017-12-06 08:12:05
【问题描述】:
使用flex-basis 属性保持左侧项目具有固定宽度没有问题。但是我有一个场景,我不希望左元素被固定,而是保持右元素的宽度固定。我尝试将flex-basis 放在正确的元素上,但是问题是弹性项目溢出了它的容器。
有没有办法做到这一点?例如我有下面的布局:
.flex-outer {
display: flex;
}
.dashboard {
flex-grow: 1;
}
.col {
margin-left: 25px;
flex-basis: 200px;
background: orange;
}
.flex-container {
display: flex;
justify-content: space-around;
}
.flex-item {
flex: 1 1 200px;
background: tomato;
padding: 5px;
height: 150px;
margin-top: 10px;
color: white;
font-weight: bold;
font-size: 3em;
display: flex;
justify-content: center;
align-items: center;
}
<div class="flex-outer">
<div class="dashboard">
<ul class="flex-container">
<li class="flex-item">1</li>
<li class="flex-item">2</li>
<li class="flex-item">3</li>
<li class="flex-item">4</li>
<li class="flex-item">5</li>
<li class="flex-item">6</li>
</ul>
</div>
<div class="col">
</div>
</div>
问题
我想要做的是将右侧元素(橙色)200px 保持在固定宽度,并根据可用空间缩小左侧弹性项目(红色)。但是,问题是当视口太窄时,正确的元素会溢出容器,请参见下图。
【问题讨论】:
-
你想要 2 个列表项在同一行吗?
-
你的图片没有为我加载。
-
我还是不明白。 2 你的图片有什么区别?红色元素仍然占据所有剩余空间
-
发布了答案。当视口中没有剩余空间时,左边的项目应该怎么办?