Javascript 如何设置高度,或允许div延伸到其中绝对位置元素的高度?
我有一个容器div,其中包含绝对定位的元素。这些元素的高度都是可变的。但是,每行都有一个设置的数字,但是这些行在标记中没有以任何方式定义 我无法以任何方式修改标记,因为它是从库()输出的 如何使用CSS或JavaScript(jQuery可用)扩展父div的高度以匹配子div的高度 我有一把小提琴在这里显示问题:-期望的效果是蓝色盒子“伸展”到红色盒子的高度。但是请记住,框的高度是可变的,因此我不能简单地在行中循环并计算第一列的高度(请参见下面的示例图像)。小提琴的代码如下: CSSJavascript 如何设置高度,或允许div延伸到其中绝对位置元素的高度?,javascript,jquery,css,jquery-masonry,Javascript,Jquery,Css,Jquery Masonry,我有一个容器div,其中包含绝对定位的元素。这些元素的高度都是可变的。但是,每行都有一个设置的数字,但是这些行在标记中没有以任何方式定义 我无法以任何方式修改标记,因为它是从库()输出的 如何使用CSS或JavaScript(jQuery可用)扩展父div的高度以匹配子div的高度 我有一把小提琴在这里显示问题:-期望的效果是蓝色盒子“伸展”到红色盒子的高度。但是请记住,框的高度是可变的,因此我不能简单地在行中循环并计算第一列的高度(请参见下面的示例图像)。小提琴的代码如下: CSS .cont
.container{
position:relative;
background:blue;
min-height:100px;
}
.box{
position:absolute;
width:75px;
height:75px;
margin:5px 5px;
background:red;
border:1px solid black;
}
HTML
<div class="container">
<div style="top:0; left:0px;" class="box"></div>
<div style="top:0; left:85px;" class="box"></div>
<div style="top:0; left:170px;" class="box"></div>
<div style="top:0; left:255px;" class="box"></div>
<div style="top:0; left:340px;" class="box"></div>
<div style="top:85px; left:0px;" class="box"></div>
<div style="top:85px; left:85px;" class="box"></div>
<div style="top:85px; left:170px;" class="box"></div>
<div style="top:85px; left:255px;" class="box"></div>
<div style="top:85px; left:340px;" class="box"></div>
<div style="top:170px; left:0px;" class="box"></div>
<div style="top:170px; left:85px;" class="box"></div>
<div style="top:170px; left:170px;" class="box"></div>
<div style="top:170px; left:255px;" class="box"></div>
<div style="top:170px; left:340px;" class="box"></div>
</div>
循环遍历每一行并计算出最高元素的高度将不起作用,因为它下面的元素可能要短得多,从而导致计算中断。请参见此示例以了解我的意思:
请注意:这个问题的其他答案不适用,因为我的子div的高度可变,并且因为我不需要纯CSS解决方案。因此我不认为这是一个重复的问题,我已经搜索了其他类似的问题。您可以循环子元素以确定哪个元素离顶部最远:
var height = 0;
$('.container > div').each(function() {
var $this = $(this),
bottom = $this.position().top + $this.outerHeight();
if(bottom > height) {
height = bottom;
}
});
然后将高度设置为该子体的顶部和该子体的高度之和
$('.container').height(height);
如果每个
.box
上都有边距,您可能需要修改此边距,以将true
传递到outerHeight
。很聪明,很明显,我现在看到了。我试图把事情复杂化。谢谢:)