【发布时间】:2020-10-31 23:01:36
【问题描述】:
我在一个高度未知的容器中有一个消息列表(这是一个 flex 子项),并希望使它们可滚动。但我找不到flex-grow: 1、min-height: 0 和其他 flex 技巧的适当组合来使其正常工作 - 消息列表仍然大于其父级。
当我将 overflow-y: auto 添加到它的父级时 - 它可以工作,但是除了消息列表之外,这个父级还包含一些不应滚动的内容。
这是我的例子:https://jsfiddle.net/ecbtrn58/2/
<div class="page">
<div class="messages-section">
<div class="header">Your messages</div>
<div class="content">
<img src="https://http.cat/100" width="70" height="50"/>
<div class="messages-list">
<div class="message">Hi.</div>
<div class="message">Hello.</div>
<div class="message">Good morning.</div>
<div class="message">Yo!</div>
</div>
</div>
</div>
</div>
.page {
background-color: #ddd;
width: 300px;
height: 300px;
.messages-section {
display: flex;
flex-direction: column;
width: 50%;
height: 100%;
background-color: #ccc;
.header {
background: #bbb;
padding: 5px;
}
.content {
display: flex;
flex-direction: column;
align-items: center;
padding: 5px;
.messages-list {
display: flex;
flex-direction: column;
overflow-y: auto;
/* What to add here to make it scrollable? */
.message {
height: 50px;
margin: 10px;
padding: 10px;
background: #1dc497;
}
}
}
}
}
如何让消息列表滚动?
【问题讨论】: