相关 JS Fiddle http://jsfiddle.net/arosen/FMQtR/
问题
我的 HTML 看起来像这样:
<div id='parent'>
<div id='one'>
A variable amount of text here.
</div>
<div id='two'>
A less important variable amount of text here.
</div>
</div>
#parent div 是固定高度,不能更改。在其中,我至少有两个子 div。第一个(或许多)将在其中确定其高度的未知数量的文本。根据第一个的内容,我希望最后一个占据父级中留下的高度但不溢出。
我当前的示例 CSS 是:
#parent {
border: 1px solid #000;
height: 150px;
width: 150px;
}
#one, #two {
border: 1px dashed #333;
height: auto;
margin: 5px;
padding: 5px;
overflow: hidden;
}
我目前的 JS 解决方案
function() {
var $two = $('#two');
var $parent = $('#two').parent()
$parent.css('overflow', 'hidden');
var heightDifference = $parent[0].scrollHeight - $parent.height();
$two.css('height', $two.height() - heightDifference);
}
我想知道是否有针对此问题的 CSS 布局或 HTML 解决方案,或者我是否必须使用在按下最后一个按钮时运行的小提琴中的 JS 解决方案。
编辑更新了我的 JS 小提琴,因为文本不会在页面上更改一次,但取决于从服务器加载的信息,在呈现页面之前不会知道它将有多少文本。
编辑 2只需要支持现代(和 IE 9)浏览器。
编辑 3最终的 div必须有一个高度,因为它被其他 jQuery 插件使用。