DIV高度动态,滚动溢出

时间:2013-09-29 22:22:55

标签: css html

我有一个包装器div,它的页面高度为100%,在包装器中我有一个动态的div数。 我希望包装器div中的最后一个div填充剩余的空间。

  html {
    height: 100%;
}
body {
    height: 100%;
}
#wrapper {
    height: 100%;
    width: 200px;
    border: solid 1px #FF0;
}
#wrapper .child {
    border: solid 1px #F00;
    height: 40px;
}
#wrapper .last {
    height: 100%;
    border: solid 1px #000;
}

正如您在示例中看到的那样:http://jsfiddle.net/CCDHT/当我将最后一个div高度设置为100%时,溢出了包装div。

这是我想要实现的目标: enter image description here

6 个答案:

答案 0 :(得分:0)

您可以添加:

overflow:auto; 

到主要的div。

这是你的意思吗?

http://jsfiddle.net/CCDHT/2/

答案 1 :(得分:0)

http://jsfiddle.net/CCDHT/1/

设置

#wrapper {
    overflow:auto;
...

达到预期的产量。

答案 2 :(得分:0)

将其设置为inline-block overflow:scroll;并删除height

#wrapper{

    display:inline-block;
    overflow:scroll;

}

inline-block占用了所需的所有空间(尽可能多)。

答案 3 :(得分:0)

我通常使用一个简单的jQuery函数在页面初始化上运行以获得这种功能:

function set_div_height() {

    el_height = (
        ($(window).height()) - ($('.div1').height() + $('.div2').height())
    );
    $('.div3').height(el_height); 

}

答案 4 :(得分:0)

您所描述的内容看起来像<table>。您可以尝试模仿它:

  1. display: table;添加到#wrapper
  2. display: table-row;添加到#wrapper div
  3. http://jsfiddle.net/WCx4P/1/

    此解决方案的缺点是:

    • 最后一个div必须有内容
    • 您无法直接在所有#wrapper div上使用边框

    这是一个令人讨厌的解决方案,但是我现在唯一能想到的解决方案。

    我希望看看您尝试实现的确切设计,并为您的问题找到更好的解决方法。

答案 5 :(得分:0)

您必须动态执行此操作,因为您希望在不同的屏幕之间进行调整。我希望jQuery能够实现这一目标。 小心身体边缘和边界。

html, body {
    padding: 0;
    margin: 0;
    height:100%;
}

  $(document).ready(function () {
      div3_height = $(window).height() - ($(".child").outerHeight(true) * 2);
      $("#wrapper .last").css("height", div3_height - 4);
  });

http://jsfiddle.net/djwave28/CCDHT/5/