Dal*_*eri 2 html css overflow flexbox
我正在尝试制作一个简单的聊天窗口,其中消息锚定在窗口的右侧和底部。我希望聊天窗口在消息溢出窗口时滚动。
我正在使用 flexbox 来定位消息,并给窗口一个overflow-y: auto;. 由于某种原因,我无法理解这不起作用。如果我从窗口中删除了 flex 定位,滚动会按预期正常工作。为什么 flexbox 会改变滚动行为?
这是一个显示问题的非常简单的代码笔:https ://codepen.io/skypod/pen/OdavbR
.chat-window {
background-color: grey;
width: 400px;
height: 400px;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: flex-end;
overflow-y: auto;
}
.message {
background-color: blue;
color: white;
padding: 0.5rem;
margin: 0.25rem;
}Run Code Online (Sandbox Code Playgroud)
<div class="chat-window">
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
</div>Run Code Online (Sandbox Code Playgroud)
删除justify-content: flex-end并添加flex-direction: column-reverse而不是列方向。现在为s添加一个包装器message- 请参见下面的演示:
.chat-window {
background-color: grey;
width: 400px;
height: 400px;
display: flex;
flex-direction: column-reverse; /* CHANGED */
/*justify-content: flex-end;*/
align-items: flex-end;
overflow-y: auto;
}
.message {
background-color: blue;
color: white;
padding: 0.5rem;
margin: 0.25rem;
}Run Code Online (Sandbox Code Playgroud)
<div class="chat-window">
<div class="message-wrapper">
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div class="message">text</div>
<div>
</div>Run Code Online (Sandbox Code Playgroud)