问题描述
我正在尝试实现一个水平滚动条来显示图像,但是包装器(滚动容器)容器的宽度溢出了。我还需要使用 FlexBox 网格使其响应不同的屏幕尺寸。
HTML 和 SCSS 的结构如下所示。容器必须位于 mat-tab-group(角材质)内。 div 'item' 将包含多个项目。
我在 chrome 上运行它并检查了检查器,显然 mat-tab-body-wrapper display: flex 属性导致了这个问题。 是否有解决此问题的方法?
HTML
<mat-tab-group>
<mat-tab label="First">
<div class='row scroll-container'>
<div class='col-xs-5 col-sm-8 col-md-9 col-lg-12'>
<div class='horizontal-slider'>
<div class='slider-container'>
<div class='item'>
<img src='' alt=''>
</div>
</div>
</div>
</div>
</div>
</mat-tab>
</mat-tab-group>
SCSS
.scroll-container {
margin: 8px 0 0 0;
.horizontal-slider {
display: flex;
overflow-y: hidden;
max-width: inherit;
overflow-x: scroll;
Box-sizing: border-Box;
.slider-container {
.item {
display: flex;
margin-right: 8px;
img {
width: 124px;
height: 124px;
}
}
}
}
}
解决方法
最有效的解决方案如下所示。除了 flex-nowrap,您还需要设置 overflow 属性以防止整个页面展开。
有溢出属性:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<h6>Bootstrap 4 horizontally scrollable card groups</h6>
<div class="d-flex flex-row flex-nowrap overflow-auto">
<div class="card card-block mx-2" style="min-width: 300px;">Card</div>
<div class="card card-block mx-2" style="min-width: 300px;">Card</div>
<div class="card card-block mx-2" style="min-width: 300px;">Card</div>
</div>