假设一个例子:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<style type="text/css">
html, body { height:100%; width:100%; padding:0; margin:0; }
body { overflow:scroll; }
#wrapper { background:#5f9ea0; width:500px; height:100%; min-height:100%; margin:0 auto; overflow:auto; }
#content { background:#336699; width:400px; height:100%; min-height:100%; margin:0 auto; overflow-x:hidden; position:relative;}
#info-block { background:#d2691e; width:300px; left:20px; position:absolute; }
</style>
</head>
<body>
<div id="wrapper">
<div id="content">
<div id="info-block">Info..<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>...End</div>
</div>
</div>
</body>
</html>
这个例子有几个问题:
- 它将滚动条放入错误的位置,
#content
而不是body
. - ,
body
也#wrapper
没有#content
计算出合适的高度。预期是522px
而不是227px
. (下面的屏幕截图)。
#info-block
所以实际的问题是我需要页面来获取元素内容的高度。试过可能不同的设置,都失败了。
一种可行的解决方案 - 使用 jQuery 并将 的高度与#info-block
的高度进行比较body
,并将其递归地应用于body
,#wrapper
和#content
. 但这是错误的。寻找仅 CSS 的解决方案。
而且,我不能摆脱元素的position:absolute
属性#info-block
,因为它是交互式水平手风琴的一部分。
提前致谢。