绝对div的高度

时间:2014-01-22 18:22:47

标签: jquery css html absolute

JSFiddle here

var element=$("#outer"); // element is a jQuery object
var max=0;
element.children().each(function(index, child) {
    child=$(child);
    var childPos=child.position();
    var childMax=childPos.top+child.outerHeight();
    if(childMax>max) {
        max=childMax;
    }
});
element.css({height: max+'px'});

任何人都可以在没有给出修复高度的情况下向#outer div添加边框吗? :/

我尝试使用jquery但它不起作用。如果可能,请向我提供任何工作示例。

2 个答案:

答案 0 :(得分:1)

好像你试图将box2内容的边框放在实际上是溢出的(这意味着它的高度属性不会反映其内容的高度)。

将CSS更改为height:auto

#box1, #box2 {
    width: 20px;
    height: auto;
    background: #f00;
}

然后更改每个选择器:

element.find('*').each( function(index, child) { 
    //... 
});

因此,您在迭代中获得了元素box2,因为它不是outer的直接子元素。

Working Fiddle

更新:替代解决方案

如果你想保留原来编写的CSS,你可以找到DOM元素的scrollHeight,并在溢出的情况下用它来确定里面内容的高度。 / p>

更改此行:

var childMax=childPos.top+child.outerHeight();

对此:

var childMax=childPos.top+child[0].scrollHeight;

Alternative Solution Fiddle

答案 1 :(得分:0)

我在这里添加了一个边框:

#outer {
left: 50px;
top: 50px;
width: 200px;
background: #aaa;
border:1px solid red;
}

它现在有边界。 你想要实现什么? 也许你希望它有一个边框,并包含它的所有子元素?