【发布时间】:2020-01-22 06:45:02
【问题描述】:
我正在构建一个定制的水平轮播,我想在其中显示一些可垂直滚动的项目。
到目前为止我尝试过的代码:
html
<div class="carousel">
<div class="c-item">Item-1</div>
<!-- to be displayed vertically -->
<div class="abs">
<div class="a-item">Abs Item-1.1</div>
<div class="a-item">Abs Item-1.2</div>
<div class="a-item">Abs Item-1.3</div>
</div>
<div class="c-item margin">Item-2</div>
<!-- to be displayed vertically -->
<div class="abs">
<div class="a-item">Abs Item-2.1</div>
<div class="a-item">Abs Item-2.2</div>
<div class="a-item">Abs Item-2.3</div>
</div>
</div>
<div class="other">
Other div
</div>
css
.carousel{
color: #FFF;
white-space: nowrap;
overflow-x: auto;
overflow-y: hidden;
position: initial;
.c-item{
display: inline-block;
width: 35%;
background: #000;
height: 100px;
&.margin{
//margin-left: 35%;
}
}
.abs{
background: #444;
display: inline-block;
vertical-align: top;
width: 35%;
max-height: 180px;
overflow-y: auto;
.a-item{
height: 100px;
border: 1px solid #000;
}
}
}
.other{
background: yellow;
}
结果:
(codepen)
这里的问题是:我希望另一个 div 在 item-1 的下方开始;这意味着垂直滚动的 div 应该与另一个 div 重叠,并且轮播高度应该固定在 100px。我尝试将position: absolute 用于.abs div,但随后该div 不会继续滚动轮播。
所需的输出将如下所示:
【问题讨论】: