我有两个 div,'content-left' 和 'content-right'。content-left div 的高度可以不同。content-right div 具有恒定的高度。
更新: content-left 的大小不仅可以变化,而且它的大小可能会随着时间的推移而变化,具体取决于用户所做的事情。
我希望 content-left 包含一个 div 滚动条。我不希望浏览器窗口本身有滚动条。
我希望内容正确的 div 的内容始终可见。content-right 永远不应该滚出页面。
我想出了下面的代码,但我认为它可能会更好。
我在 Firefox 和 chrome 中对此进行了测试。Internet Explorer 与我无关。
本质上,我只是“隐藏”了左 div,确定了右 div 顶部与窗口大小的差异,并设置了左 div 的 max-height 属性。然后滚动发生溢出:自动
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript">
</script>
<script type="text/javascript">
$(document).ready(function() {
processLeftDiv();
});
$(window).resize(function() {
processLeftDiv();
});
function processLeftDiv() {
$('#content-left').hide();
windowHeight = $(window).height() ;
positionTop = $('#content-right').position().top ;
$('#content-left').css('max-height', ( windowHeight - ( positionTop + 20 ) ) );
// the 20 is padding
$('#content-left').show();
}
</script>
<title>Test</title>
<style type="text/css">
#header
{
width: 100%;
background: red;
}
#content-left
{
float: left;
margin-bottom: 5px;
width: 50%;
height: 100%;
max-height: 100%;
overflow: auto;
background: blue;
display:none;
}
#content-right
{
float: right;
width: 50%;
background: green;
}
</style>
</head>
<body>
<div id="header">
Header
<p>Header stuff</p>
</div>
<div id="body">
<div id="content-left">
Content left
<p>Blah Blah</p>
<p>Blah Blah</p>
<p>Blah Blah</p>
repeated 100 times
<p>Blah Blah</p>
<p>Blah Blah</p>
<p>Blah Blah</p>
<p>Blah Blah</p>
<p>Blah Blah</p>
</div><!--close left div-->
<div id="content-right">
Content
<p>Content stuff</p>
</div><!--close right div-->
</div><!--close body div-->
</body>
</html>
想法?