【发布时间】:2018-11-09 14:50:15
【问题描述】:
如果一般内容长于模态高度,我已经有一个带有滚动条的模态。但我需要一个div 在我的模态中使用它自己的滚动。我的问题是我不知道模态框的高度,因为它基于30vh。
如果我可以简单地为我的内部div 设置一个静态高度,那会更容易,但我做不到。
我的问题:我需要为正确的区域创建一个单独的滚动条。
.container {
max-height: 30vh;
border: 1px solid black;
overflow-x: hidden;
overflow-y: auto;
}
.header {
border: 1px solid red;
}
.body {
display: flex;
}
.leftArea {
border: 1px solid green;
width: 50%;
}
.rightArea {
border: 1px solid blue;
width: 50%;
overflow-x: hidden;
overflow-y: auto;
/* height: ???; */
}
<div class="container">
<div class="header">
HEADER
</div>
<div class="body">
<div class="leftArea">
<p>left area</p>
<p>left area</p>
<p>left area</p>
<p>left area</p>
<p>left area</p>
<p>left area</p>
<p>left area</p>
<p>left area</p>
<p>left area</p>
</div>
<div class="rightArea">
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
<p>right area</p>
</div>
</div>
</div>
这是我在CodePen 上的示例。
【问题讨论】:
-
我不知道你想要这个样子。当 div 大于其高度时会发生滚动,但在这种情况下,您对 rightArea 的高度没有限制。您可以将 rightArea 设置为也有 30vh 的高度限制?但在这种情况下,向下滚动 div 的其余部分会显示 rightArea 太小...例如:codepen.io/anon/pen/mKyBQO?editors=1100#0
-
谢谢,@Asthmatic,它可以工作,但 30vh 是整个模态的高度。请注意,我有一个 Header (我可以在两者之间有更多的元素)。所以我的 .rightArea 应该小于模态的总高度。你知道我的意思吗?
-
我的意思是,如果左侧区域太大,您可以滚动整个模式,但只有在右侧区域太大时才滚动右侧区域,您必须设置一个高度构成“太大”的正确区域。
-
我明白你的意思。如果我找不到任何“完美”的东西,我会采用这种方法。我将减少
vh的数量以更接近我的区域大小。根据标题的大小,我仍然会有一些差距。但它现在有效。谢谢