【发布时间】:2019-09-13 00:27:13
【问题描述】:
我主要使用 Bootstrap,但在这种情况下,纯 CSS 和 Bootstrap 都无法做到这一点。我有一个这样的 HTML:
#filling{
display: flex;
flex-direction: column;
overflow-y: scroll;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div>
<div class="container">
<div class="row align-items-center mt-3">
<div class="col-6 text-center">
<img width="150" height="150" src="img/user-placeholder.svg">
<p class="mt-2 mb-0">pholder</p>
</div>
<div class="col-6">
<div class="mb-2">
<div class="row">
<div class="col-6 text-center">pholder</div>
<div class="col-6 text-center">pholder</div>
</div>
<div class="row">
<div class="col-6 text-center">Friends</div>
<div class="col-6 text-center">Posts</div>
</div>
</div>
<butto class="btn btn-transparent mt-2">Click</button>
</div>
</div>
<br>
<p class="text-center m-0">Contents</p>
<hr class="mt-0 mb-2">
</div>
<div id="filling" class="text-center">
<div class="sample">
<img width="270" height="270" src="my_img.jpg">
<p>coding</p>
</div>
<div class="sample">
<img width="270" height="270" src="my_img.jpg">
<p>coding</p>
</div>
<div class="sample">
<img width="270" height="270" src="my_img.jpg">
<p>coding</p>
</div>
</div>
</div>
现在的问题是:#filling div 必须动态填充,我希望它的行为类似于 Android 编程中的 ListView。我必须能够滚动它。因此我添加了一些 CSS:
#filling{
display: flex;
flex-direction: column;
overflow-y: scroll;
}
但是,如果我通过添加像这三个 .sample div 这样的子元素来填充 div,则列表会垂直增长,但 #filling div 也会如此。换句话说,它'迫使我滚动整个页面而不仅仅是 div。
我希望我已经清楚了,这肯定会被标记为任何 flex 问题的副本,但我希望收到一个可行的解决方案,因为除了固定 div 的高度之外,比如说,在 250px 我找不到“响应式”的方式来做到这一点。
【问题讨论】:
-
首先,将 flex-direction 后面的 = 改为冒号
flex-direction:column; -
检查this answer和this one...如果你使用百分比来定义高度,你需要一个明确高度设置的父级,你也可以使用
vh单位来用视口高度设置高度
标签: html twitter-bootstrap css flexbox