我试图让两个兄弟div元素的高度相同。它们中有一个溢出y和一个可变高度内容的滚动条。主div具有可变高度的内容,具体取决于动态内容和浏览器宽度。主要内容div应显示其所有内容。左滚动面板应与主要内容的高度相等,无论浏览器的宽度或内容的高度如何,因此滚动条。
以前,我会使用jQuery,检测窗口宽度变化并相应调整。但我试图在React应用程序中这样做..所以理想情况下它只是CSS。这可能吗?
HTML:
<div class="parent">
<div class="panel-with-scroll">
<div class="panel-inner">
<p>panel with scroll</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
</div>
</div>
<div class="content">
<p>content panel</p>
</div>
</div>
CSS:
.parent {
width: 600px;
display: flex;
}
.panel-with-scroll {
width: 200px;
height: 400px;
overflow-y: scroll;
background: pink;
}
.content {
background: yellow;
width: 400px;
height: 300px;
}
标记和css的一个例子在JSBIN:
答案 0 :(得分:1)
要使其工作,请panel-inner
绝对定位,并在其上设置overflow-y: scroll
。
使用它可以使content
按其内容动态调整大小,并使面板始终等于高度,并在其内容不适合时滚动
.parent {
width: 600px;
display: flex;
}
.panel {
position: relative;
width: 200px;
background: pink;
}
.panel-inner {
position: absolute;
top: 0; left: 0;
right: 0; bottom: 0;
overflow-y: scroll;
}
.content {
background: yellow;
width: 400px;
}
<div class="parent">
<div class="panel">
<div class="panel-inner">
<p>panel with scroll</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
<p>..</p>
</div>
</div>
<div class="content">
<p>content panel</p>
<p>content panel</p>
<p>content panel</p>
<p>content panel</p>
<p>content panel</p>
</div>
</div>
答案 1 :(得分:0)
在父元素中设置高度,而不是在子元素中设置高度:
.parent {
width: 600px;
height: 400px;
display: flex;
}
.panel-with-scroll {
width: 200px;
overflow-y: scroll;
background: pink;
}
.content {
background: yellow;
width: 400px;
}
答案 2 :(得分:0)
.parent {
width: 600px;
height: 400px;
display: flex;
}
.panel-with-scroll {
width: 200px;
height: 100%;
overflow-y: scroll;
background: pink;
}
.content {
background: yellow;
width: 400px;
height: 100%;
}
试试这个。我想你可能必须使用javascript,如果你想使用滚动的div的高度取决于具有动态内容的div的高度。否则,您可以将它们的高度设置为100%。