【发布时间】:2018-05-28 20:42:30
【问题描述】:
我正在制作一个(某种)旋转木马,其中的项目水平对齐。
每个子元素(大约有十几个)应该拉伸父元素宽度的三分之一。任何时候都应显示三个项目。
我使用过 Bootstrap 4 和一些自定义 CSS。不需要 JavaScript,轮播依靠手动滚动来显示其项目。
如您所见,为列表项设置width: 33.333% 不适用于非常小或非常大的分辨率。我还希望这些项目以超小分辨率拉伸全宽。
什么是可行的、特定于 flex-box 的替代方案?
html,
body {
padding: 0;
margin: 0;
height: 100%;
}
.page-wrapper {
min-height: 100%;
}
.hero {
height: 100vh;
background: #212121;
justify-content: center;
align-items: center;
}
#carousel {
list-style-type: none;
margin: 0;
padding: 0;
overflow-x: scroll;
justify-content: left;
align-items: center;
}
#carousel li {
padding: 0 0 70px 0;
width: 33.333%;
}
#carousel li a {
text-decoration: none;
color: #fff;
}
#carousel li img {
display: block;
width: 100%;
}
#carousel li .caption {
padding-top: 20px;
}
#carousel li h2 {
font-size: 20px;
line-height: 1;
margin: 0;
padding: 0;
}
#carousel li p {
font-size: 10px;
padding: 0;
margin: 5px 0 0 0;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="page-wrapper">
<div class="hero d-flex">
<ul id="carousel" class="d-flex">
<li class="col-md-4">
<a href="#"><img src="https://placeimg.com/300/200/people" alt="">
<div class="caption">
<h2>Lorem ipsum dolor</h2>
<p>A true story</p>
</div>
</a>
</li>
<li class="col-md-4">
<a href="#"><img src="https://placeimg.com/300/200/nature" alt="">
<div class="caption">
<h2>Lorem</h2>
<p>Lorem ipsum dolor sit amet, consectetur</p>
</div>
</a>
</li>
<li class="col-md-4">
<a href="#"><img src="https://placeimg.com/300/200/arch" alt="">
<div class="caption">
<h2>My neighborhood</h2>
<p>Lorm ipsum dolor</p>
</div>
</a>
</li>
<li class="col-md-4">
<a href="#"><img src="https://placeimg.com/300/200/animals" alt="">
<div class="caption">
<h2>Into the wild</h2>
<p>Lorem ipsum dolor sit amet, consectetur</p>
</div>
</a>
</li>
</ul>
</div>
</div>
【问题讨论】:
标签: html twitter-bootstrap css flexbox