2016-10-28 62 views
0

我有一個設置了標題部分,左邊欄,內容和頁腳部分的頁面。在這裏看到我的jsfiddle:https://jsfiddle.net/maryjames0/3vxdzga6/通過從父分區減去另一個子分區的高度來計算子分區的高度

下面是HTML:

<div id="container"> 
    <div id="header"> 
Some Header Content 
    </div> 
    <div id="main"> 
    <div id="sidebar"> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec placerat sodales neque, in varius est accumsan id. Ut nec fringilla purus, et sodales erat. Fusce pretium dapibus erat. Aenean ornare in felis quis commodo. Duis vulputate tellus sed faucibus aliquet. Suspendisse erat enim, laoreet sit amet enim sollicitudin, varius efficitur arcu. Maecenas molestie fringilla dolor, non pulvinar ante ullamcorper bibendum.</p> 
     <p>Curabitur quam magna, tempor in posuere vestibulum, porta at est. Fusce cursus leo vel arcu rhoncus dapibus. Fusce vel dictum lectus. Curabitur ligula elit, cursus ac lorem at, interdum fermentum arcu. Morbi eleifend tincidunt justo a tempor. Nulla quis egestas enim, vel iaculis nisi. Duis eros arcu, pulvinar aliquam ante eu, euismod commodo tellus. Phasellus egestas, nulla eu dictum finibus, eros massa aliquam massa, a volutpat sem urna ut purus. Duis egestas erat felis, sed scelerisque elit molestie tincidunt. Phasellus ac lorem ut dolor imperdiet varius. Quisque dapibus dui vitae urna pretium, a tincidunt urna sagittis. Vivamus quis accumsan ex. Mauris in ornare nisl, eu auctor mi. Mauris arcu risus, pharetra vel metus eu, feugiat tristique lectus. Aliquam erat volutpat. Vivamus ex lorem, pellentesque in pharetra ac, vulputate et massa.</p> 
    </div> 
    <div id="content"> 
     <div id="top"> 
     <p>Curabitur rhoncus quis diam quis tristique. Fusce aliquam lobortis elit. Duis dapibus maximus interdum. Praesent vitae mi venenatis, tincidunt enim ac, malesuada urna. Sed mollis massa at felis bibendum dapibus. Nunc vel sodales justo, at ultrices quam. Nullam in ornare sem. Praesent vestibulum interdum orci, in dignissim eros. Nunc lobortis, ligula id pellentesque sodales, sapien erat accumsan tellus, et finibus nunc eros auctor est. Integer sem odio, tincidunt sed purus sed, porta lacinia magna. Nulla sed sollicitudin risus. Aenean pulvinar maximus dui id luctus. Donec accumsan fermentum ante, ut gravida augue interdum ut. Quisque volutpat blandit luctus. Duis mollis eu odio gravida dictum. Nullam interdum tortor sit amet semper bibendum.</p> 
     </div> 
     <div id="bottom"> 
     <p>Etiam euismod mattis sem pretium fringilla. Nunc lobortis ante diam, ac feugiat sem consectetur in. In non neque mattis, elementum ante ornare, blandit metus. Morbi eu sapien id elit sagittis commodo. Morbi sed velit eget dui vestibulum faucibus mattis vel lacus. Vestibulum a fringilla risus. Nulla convallis, lacus ut suscipit hendrerit, nisi lacus interdum neque, a commodo mauris diam in enim. Donec venenatis, nulla eu elementum ultrices, mi est vestibulum lectus, vel eleifend mi nisi quis lectus. Suspendisse commodo, risus id porttitor gravida, ex odio vulputate magna, eget elementum lectus mauris ac turpis. Nulla feugiat vestibulum viverra. Nullam vitae justo tristique purus tincidunt fermentum. Cras pretium purus elit, non interdum felis fermentum quis.</p>  
     </div> 
    </div> 
    </div> 
    <div id="footer"> 
    Some Footer Content 
    </div> 
</div> 

而CSS:

#container {max-width: 1125px; margin-right: auto; margin-left: auto;} 
#header {background-color: #c1d1dc;} 
#main {overflow: hidden; padding: 0; margin: 0;} 
#sidebar {float: left; display: inline; width: 305px; background-color: #d4d7d9; box-sizing: border-box; padding-left: 15px; padding-right: 15px; padding-top: 10px; padding-bottom: 99999px; margin-bottom: -99999px;} 
#content {padding-bottom: 99999px; margin-bottom: -99999px; overflow: hidden; background-color: pink;} 
#top {padding: 0 15px 4px 15px; margin: 0 0 0 0; background-color: #FFFFFF; overflow: hidden;} 
#bottom {background-color: #c1d1dc; overflow: hidden; padding: 0 15px 10px 15px; box-sizing: border-box;} 
#footer {background-color: #8EA4B8;} 

父DIV(#內容)包含兩個孩子的div(#top返回和#bottom網頁)。所有這些div以及側欄div(#sidebar)的內容都是可變的,所以它們都會有不同的高度。

我想知道的是,如果可以根據#top的(變量)高度減去#top的(變量)高度計算#bottom的高度,以便#bottom填充在#top之後的#content剩餘空間。我們的目標是讓#bottom及其背景顏色(以及它所具有的邊框)可以像邊欄一樣向下延伸。

注意:不幸的是我不能使用Flexbox(需要爲IE8和IE9設計)。

接受的答案在這裏:Pass variable into jQuery CSS value to calculate height是沿着我想要做的,但使用可變高度父div而不是100%或100vh。

我也會接受不使用計算的解決方案;無論工作。非常感謝!

回答

0

就在DOM後運行這樣的事情是準備

$(function() { 
    var maxHeight = Math.max($("#sidebar").height(), $("#content").height()); 
    $("#bottom").height(maxHeight - $("#top").height()); 
});