我有一个有点像 Discord 的 Flexbox 布局。我的列表是包含我拥有的所有消息的 messageList。我想添加溢出-y:滚动到它,但它不起作用,因为我没有特定的高度。另外,我不想添加特定的高度,因为它应该是动态的。
我的解决方案是。
最大高度: calc(100vh - header.height - send.height)
但只有当您有特定的标头高度并发送时,它才有效。
还有其他办法吗?
示例: https: //jsfiddle.net/AvaPLaIN/b7umpgzn/44/
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.container {
height: 100vh;
width: 100vw;
display: flex;
flex-direction: column;
border: 2px solid black;
}
.header {
width: 100%;
border: 2px solid red;
min-height: 3rem;
}
.content {
flex: 1;
display: flex;
border: 2px solid green;
}
.chatbox {
flex: 1;
border: 2px solid yellow;
display: flex;
flex-direction: column;
}
.members {
width: 15rem;
border: 2px solid blue;
}
.list {
flex: 1;
border: 2px solid grey;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 0.5rem;
overflow-y: scroll;
}
li {
width: 100%;
border: 1px solid black;
}
.send {
height: 5rem;
border: 2px solid purple;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="header">
Header here
</div>
<div class="content">
<div class="chatbox">
<ul class="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>
<div class="send">
Send Message here
</div>
</div>
<div class="members">
Memberlist here
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
小智 7
只需使用flex: 1 1 0而不是flex: 1in即可.list。
flex-basis该问题与属性和速记有关flex: 1。
flex-basis: 0px并且flex-basis: 0%在某些情况下会产生不同的结果。这是解释问题的答案:/sf/answers/4443270051/
flex-basis: 0px另外,我做了一个简单的演示来展示和 之间的区别flex-basis: 0%: https: //codepen.io/shadow-mike/pen/NWpNVvv
| 归档时间: |
|
| 查看次数: |
3608 次 |
| 最近记录: |