简体   繁体   English

两个垂直div,每个div具有最大高度的自动滚动

[英]Two vertical divs, each with auto scroll with max-height

I would like to achieve the following requirements. 我想达到以下要求。 Let's say I have two containers (top and bottom) inside a main container: 假设我在一个主容器中有两个容器(顶部和底部):

1) Both top and bottom containers need to be scrollable only when content overflows in each container 1)仅当每个容器中的内容溢出时,顶部和底部容器才需要滚动

2) Top container needs to have max height capped at 50% as content grows 2)随着内容量的增长,顶部容器的最大高度必须限制为50%

3) Bottom container's max height really depends on the height of the top container. 3)底部容器的最大高度实际上取决于顶部容器的高度。 For example, if the top container contains 30% height, the bottom container be scrollable when its height becomes larger than 70%. 例如,如果顶部容器的高度为30%,则底部容器的高度大于70%时,它可以滚动。

I tried setting the max-height to 50% for the top container scrollable area. 我尝试将顶部容器可滚动区域的最大高度设置为50%。 It didn't show 50% as expected. 它没有显示出预期的50%。

Is there a way to achieve this without using flex-box, as I need to support older IE versions. 有没有一种方法可以在不使用flex-box的情况下实现此目的,因为我需要支持较旧的IE版本。

Any help is greatly appreciated. 任何帮助是极大的赞赏。

 body, html { height: 100%; } .container { height: 90%; width: 30%; display: table; } .top { padding: 24px; background: yellow; display: table-row; } .top div { overflow-y: auto; max-height: 50%; } .bottom { height: 100%; padding: 24px; background: tomato; display: table-row; } .bottom div { overflow-y: auto; height: 100%; } 
 <div class="container"> <div class="top"> <div> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> </div> </div> <div class="bottom"> <div> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> </div> </div> </div> 

How about this one? 这个怎么样?

 body, html { height: 100%; } .container { height: 300px; width: 100%; display: table; } .top { padding: 24px; background: #000000; height: 300px; width:40%; float:left; overflow: auto; color:#ffffff; } .bottom { height: 300px; padding: 24px; background: #ff0000; color:#ffffff; display: table-row; width:40%; float:left; } li{list-style:none;} 
 <div class="container"> <div class="top"> <div> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> </div> </div> <div class="bottom"> <div> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> <li>DYNAMIC CONTENT</li> </div> </div> </div> 

I have built up on @andrepaulo's fiddle. 我建立在@andrepaulo的小提琴上。

Cheers 干杯

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM