【发布时间】:2021-05-07 10:50:25
【问题描述】:
我尝试编写一个水平滚动列表,其中每个元素都有完整的宽度。
在以下示例中,蓝色区域的大小应与灰色框区域的大小相同。
.scroller {
max-width: 600px;
border: 1px solid grey;
margin: auto;
overflow-x: auto;
overflow-y: visible;
}
.item {
display: flex;
background-color: red;
margin-bottom: 5px;
height: 74px;
}
.block {
flex: 0 0 64px;
background-color: lightgrey;
margin: 5px;
}
.blue {
flex: 1;
background-color: blue;
margin: 5px;
}
<div class="scroller">
<div class="item">
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
</div>
<div class="item">
<div class="blue"></div>
</div>
</div>
但如果我向右滚动,蓝色元素会停在父元素的 100% 宽度处。奇怪的是,所有项目的红色背景颜色也停止在 100%。
我尝试了几乎所有宽度、最小宽度、fit-content、inline-flex 等的组合。
有没有办法解决这个问题?
编辑: 在生产中会有两个以上的项目,并且所有项目都必须一起滚动。
【问题讨论】: