【发布时间】:2021-06-09 11:29:52
【问题描述】:
我有一个包装一些卡片的弹性容器。我已经用 flex 实现了一个水平滚动条(使用 flex-nowrap)。弹性包装容器最初的左间距为 36 像素,右间距为 0 像素。这里的问题是在滚动最后一张卡片后,我需要有 36px 的右间距。
这是我到目前为止所做的
*{
box-sizing: border-box;
}
h2 {
margin: 0;
}
body {
background: cadetblue;
}
.container {
width: 500px;
margin: 0 auto;
background: #000;
padding: 20px 36px;
}
.scroll-wrapper {
overflow: hidden;
margin-right: -36px;
}
.scroll-inner {
display: flex;
flex-flow: row nowrap;
overflow: auto;
margin: 0px -16px;
}
.card {
height: 250px;
width: 75%;
flex: 1 0 75%;
padding: 0px 16px;
}
.inner-wrapper {
background: #fff;
height: 250px;
}
<div class="container">
<div class="scroll-wrapper">
<div class="scroll-inner">
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
<div class="card">
<div class="inner-wrapper"><h2>Card</h2></div>
</div>
</div>
</div>
</div>
我为包装器设置了一个负的右边距,使它看起来像是从右边流出的。 滚动/到达最后一个元素后,我希望它看起来像这样 enter image description here
我注意到的一件事是我的 scroll-inner(flex-nowrap) 没有包裹整个孩子。我假设我们有五个孩子,每个孩子的宽度都是 50 像素。 scroll-inner 应该显示 250px 的可滚动宽度,不幸的是,这不是 flex 的行为方式。非常感谢任何帮助或建议。
更新几张显示我真正想要的东西的图片
滚动期间
【问题讨论】: