【问题标题】:Increasing height of a div while dynamically loading content (it's height is 100%)动态加载内容时增加 div 的高度(高度为 100%)
【发布时间】:2011-11-26 14:46:47
【问题描述】:

我有一个 div(InnerDiv),其中包含一个启用分页的网格...
在一些用户操作之后,该网格内的数据将加载,我们将拥有一个大网格!
问题是当网格的数据加载时,会溢出 div 的底部(InnerDiv)并且其中一些数据会显示在 div 之外。

我的 body 和 html 的 css 如下所示:

html, body
{
    margin: 0; /* get rid of default spacing on the edges */
    padding: 0; /* get rid of default spacing on the edges */
    border: 0; /* get rid of that 2px window border in Internet Explorer 6 */
    height: 100%; /* fill the height of the browser */
    border:3px solid red;
}

页面加载时我需要 100% 的正文高度...

OuterDiv 内部如下所示:

div#OuterDiv
{
    position:absolute;
    width: 100%;
    height: 100%;
    /*height: auto;*/
    margin: 0px;
    padding: 0px;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    border:5px solid green;
}

InnerDiv 内部 OuterDiv 如下所示:

div#InnerDiv
{
    position: relative;
    width: 100px;
    height: 100%;
    margin: 0 auto;
    background: transparent url('../Images/Blue.png') repeat scroll left top;
}

InnerDiv 中的内容如下:

#Content
{
    position: relative;
    top: 10px;
    background: transparent url('../Images/Red.png') repeat scroll left top;
    width: 550px;
    height: 1080px; /*>>>>>>>>>>>>>>>>>>> plz see this line*/
    top: 10px;
    right: 10px;
    padding: 7px;
    border: 10px ridge #ce004e;
    color: black;
}

那个网格(内容)在 InnerDiv 里面...

编辑 1
下面的例子可以显示我的情况:
Here's an example at jsFiddle

we can not remove position:absolute of OuterDiv , by doing that height:auto or height:100% on it does not work at page start -> outerDiv should be 100% because Of InnerDiv Background and remember InnerDiv height is not 1080px at start -> it is only 200px at page load and dynamically it will change to 1080px!

我想强制黄色区域 (InnerDiv) 填充整个紫色区域...
InnerDiv 也应该有 100% 的高度,因为它在页面开始时是背景......

我知道这个问题大约是 100% 高度/但我该如何解决呢?

编辑 2:
最后这里是我的网站:
MY WEB SITE
请用 firebug 更改红色区域的高度 - 所以通过将其更改为 1080px 主体,OuterDiv 和 InnerDiv 将会增长。
但是在页面加载时,我想要 body 和 OuterDiv 和 InnerDiv 100% 高度。
我怎样才能做到这一点?

提前致谢

【问题讨论】:

  • 我试过但失败了。 :( 现在我也有兴趣知道这个问题的答案。+1。
  • 您能否将upload the images 用作背景(Red.png、Blue.png、back.png)并给我们链接/在您的示例中使用这些链接。这将使我们更清楚地了解您想要在这里实现的目标(是的,我阅读了您的更新,但对我来说有点模糊)
  • 我讨厌 100% 的高度 / 总是有问题...
  • 等一下 - 我正在发布我的网站...

标签: html css height overflow


【解决方案1】:

根据我从你的解释和风格中收集到的信息,你基本上想要这个:

http://jsfiddle.net/sg3s/zXSXx/

如果这是正确的,我还将解释每个 div 发生了什么。否则请告诉我哪些 div 的行为不符合您的意愿以及原因。

顺便说一句,如果可能,请使用图像的绝对路径(整个链接)。了解它们需要如何组合在一起将有助于我们所有人找到适合您的东西。

【讨论】:

  • 究竟哪一部分不符合您的想法?这真的很难做到……我真的认为图像可能会清楚地说明这一点……(我相信你在绝对定位方面做得太多了)
  • 感谢您的评论 - 另一个答案在哪里(消失)? / 请在我的 Q.at 页面加载中查看我的突出显示区域,因为 InnerDiv 背景,我需要 OuterDiv 100% 高度 -> 当我们修复填充内容后出现溢出时 -> 当我们想要修复这个时,我们失去 100% 高度( body-OuterDiv-And At Last InnerDiv) 在页面加载时。真的很困惑!
  • 我改编了我的示例 (jsfiddel) 以使用您的图像...现在当 Content 不包含很多内容时,它的背景不会完全展开,这是问题吗?你想让红色背景也填满 100% 的高度吗?...
  • 好的,我想我现在明白了问题所在,您希望Content div 的高度为 100%,以便红色背景向下延伸到底部,但是由于这不可能一起使用为Content div(顶部和右侧)提供额外的间距,因为这有效地使 div 长于窗口的 100%,即使其中没​​有内容,它也会滚动。您希望#content 的最小高度为 100% - 10px; + 让父母围绕这个 div。
  • 感谢 cmets - 我测试了你的小提琴,这就是我想要的 - 但在你的小提琴中没有正文区域/除了溢出:我的项目中 OuterDiv 中的 auto 会导致 jsfiddle 中的额外滚动条我们看不到!
【解决方案2】:

您需要对#OuterDiv 进行更少的限制。通过指定顶部、底部、左侧和右侧,您将 #OuterDiv 的边缘锁定到 body 的边缘;并且您的主体规则将主体锁定为与视口相同的大小。

尝试像这样更改您的 div#OuterDiv 规则:

div#OuterDiv
{
    position:absolute;
    margin: 0px;
    padding: 0px;
    border: 5px solid green;
}

Here's an example at jsFiddle

【讨论】:

  • 感谢您的回答/但我的 InnerDiv(请参阅我的 jsFiddle)有一个背景图像,当页面加载时它应该是 100% - 还有你的 jsfiddle 中的 body 怎么样(我如何强制它填满整个文本?)
  • 好的。我已经更新了你的 jsFiddle (see here)。黄色框将从height:200px开始,当你点击“点击增长”时,它会增长到1080px。这说明了这两种状态。这是你要找的吗?
  • @Lee:我也得到了同样的结果。但我认为 OP 要求黄色框应具有至少 100% 的高度,然后根据内部 Div #content 的高度增长。无论如何,让我们看看 OP 在你的小提琴上说了什么。
  • 是的,你是对的 - InnerDiv 的最小高度应该是 100% - 因为它有中间背景...我测试 Lee fiddle ,但它在页面加载时不是 100%(但是增长是可以的)
猜你喜欢
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多