我正在努力使我的网页之一更漂亮。
该页面有几个列表,可以包含 0 到 500+ 个元素。列表从不同的级别/ y 坐标开始。如何调整列表的高度,以便它们被拉伸以占据浏览器中的其余高度以及页面的页脚?有点像电子邮件客户端,电子邮件文件夹和电子邮件并排列出为可滚动列表。
是否可以在不涉及列表上方元素高度的复杂计算的情况下做到这一点?
这是我为澄清问题而创建的示例页面:http: //jsfiddle.net/dilipvshah/gh2Au/
CSS
.header {
width: 800px; height: 50px; border: solid 1px black; text-align: center; vertical-align: middle;
}
.footer {
width: 800px; height: 20px; border: solid 1px black; text-align: center; vertical-align: middle;
}
.subHeader {
display: table-cell; height: 50px; text-align: center;
}
.content {
display: table; width: 800px; text-align: center;
}
.contentInner {
display: table-row; width: 100%; text-align: center;
}
.contentLeft {
display: table-cell; width: 30%; border: solid 1px black; text-align: center;
}
.contentRight {
display: table-cell; height: 400px; border: solid 1px black; text-align: center;
}
.tableLayout {
display: table; width: 100%;
}
.tableRowLayout {
display: table-row; width: 100%;
}
.listLeft {
list-style: none; text-align: left; max-height: 500px; overflow-y:auto;
}
.listRight {
list-style: none; text-align: left; max-height: 500px; overflow-y:auto;
}
HTML
<body>
<div class="header">
Header
</div>
<div class="content">
<div class="contentInner">
<div class="contentLeft">
Left
<ul id="leftList" class="listLeft">
<li> ... </li>
[ ... ]
</ul>
</div>
<div class="tableLayout">
<div class="tableRowLayout">
<div class="subHeader">
Sub-header
</div>
</div>
<div class="tableRowLayout">
<div class="contentRight">
Right
<ul id="rightList" class="listRight">
<li> ... </li>
[ ... ]
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
Footer
</div>
</body>
添加图像以澄清问题。