【发布时间】:2021-01-20 22:22:54
【问题描述】:
我正在尝试创建一个自动调整到浏览器窗口宽度的两列布局。其中一列包含可以很短但也可以很长的动态内容。另一列的文本始终相同:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.container {
display: flex;
}
.left {
flex: 1;
background-color: cornflowerblue;
overflow-y: auto;
}
.right {
background-color: aquamarine;
flex: 1;
}
</style>
</head>
<body>
<div class="container">
<div class="left">
Potentially<br>long<br>content<br>that<br>might<br>need<br>a<br>scrollbar<br>1<br>2<br>3<br>4<br>5 Fusce pulvinar sit amet massa in vulputate. Cras eros ligula, condimentum non lacus nec, maximus lacinia orci.
</div>
<div class="right">
<p>The text that<br>does not change<br>and must always<br>be displayed<br>in its entirety<br>without scrollbar.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam euismod nibh ex, sit amet vulputate ipsum luctus non.</p>
</div>
</div>
</body>
</html>
https://jsfiddle.net/w3Lhjza1/1/
我想让滚动条出现在.left div 中,只要其内容的高度大于.right div 的内容高度。当.left div 中的文本量较小时,.right 文本仍应显示不带滚动条(这已被 flex 覆盖,但不需要使用 flex):
显而易见的“解决方案”是将.left 元素的最大高度指定为“合理”的值,但我需要它针对不同的屏幕宽度自动调整。
是否可以(不使用javascript)或者我注定要为块指定固定高度?
【问题讨论】: