当前位置: 首页 > 面试题库 >

使嵌套div拉伸到剩余容器div高度的100%

龚奕
2023-03-14
问题内容

我有一个容器div,我想至少拉伸到整个窗口的高度。如果容器div中有很多内容,我希望它可以扩展到大于窗口的高度。这可行。

容器div中,我有一个图像。图片下方/下方,我有第二个div。我希望此嵌套div垂直拉伸以填充容器div的剩余空间。这行不通。

我试图用这张图来说明问题。我希望div以右图 左侧
所示的方式拉伸,而不是像 右图 右侧所示。

以下是我的代码。如您所见,在这段代码中,我什至没有尝试使图像下的div垂直拉伸,因为没有任何效果。“高度:100%”并不能解决问题,因为我默认将“
100%”定义为窗口的高度,以使容器div至少拉伸到窗口的高度。

样式:

* { 
  margin: 0; padding: 0;
}

body {
  overflow-y: scroll;
  overflow-x: hidden;
}

body, html { 
  height: 100%;
}

.container {
  display: block;
  overflow: auto;
  min-height: 100%;
  height: 100%;
  height: auto;
}

.bottom {
  width: 100%;
}

HTML:

<div class="container">

<img  src="image.jpg" width="100%">

<div class="bottom">
LOREM IPSUM
</div>

</div>

问题答案:

我花了太多时间试图解决这个问题,但是到了乔治,我已经明白了!

“尤里卡(Eureka)”时刻正在阅读其他问题,人们在问“我 使用桌子怎么办?”
当然,由于使用表,这种布局很容易。但这让我想到了display:table

使用可以display:table为您提供表格布局,而无需像HTML表格布局那样烦琐的标记开销,从而使您可以针对不同的媒体查询使用语义代码和不同的布局。

我最终不得不对标记做 一个
更改:<div>在图像周围使用包装纸。另外,在处理表格显示时,最大/最小高度都是很奇怪的:height鉴于父级和子级元素的限制,设置被视为首选高度。因此,在display:table- row包装div 上将高度设置为零可使该行完全适合内容图像。在content
div上将高度设置为100%,可以很好地填充图像与父容器的最小高度之间的空间。

仅压缩基本代码

标记:

<div class="container">
    <div class="wrapper">
        <img src="http://placekitten.com/600/250" />
    </div>
    <div class="bottom" contentEditable="true">
</div>

CSS:

body {
    overflow-y: scroll;
    overflow-x: hidden;
}
body, html {
    height: 100%;
}
.container {
    display: table;
    width: 100%
    height: 100%; /* this will be treated as a Minimum!
                     It will stretch to fit content */
}
div.wrapper{
    display:table-row;
    height:0px; /* take as little as possible, 
                   while still fitting content */
}
img {
    display:table-cell;
    width:100%; /*scale to fit*/
}
.bottom {
    display:table-cell;
    height:100%; /* take as much as possible */
}

适用于Firefox 25,Chrome 32,Opera 18和IE10。在IE 8中不起作用,但是那又是什么呢?它在IE8中看起来没有 损坏
,只是无法拉伸而已。

如果您可以在Safari,IE9或移动浏览器中对其进行测试,请发表评论。



 类似资料:
  • 问题内容: 我有一个带两个孩子的容器。第一个孩子有给定的身高。如何让第二个孩子占据容器的“自由空间” 而不给其指定高度? 在示例中,粉红色也应占据白色空间。 与此问题类似:如何使div占据剩余高度? 但是我不想摆 绝对的位置 。 问题答案: 可以通过多种方式扩展子级以填充剩余的空间,具体取决于您希望获得的浏览器支持以及是否具有定义的高度。 样本 格网 CSS的布局提供了另一种选择,尽管它可能不如F

  • http://jsfiddle.net/s8g4e/ 类似于这个问题:如何使div占据剩余高度? 但我不想给位置绝对。

  • 问题内容: 我有这个问题,我有两个股利: 如何使div2占据页面的剩余高度? 问题答案: 使用绝对定位:

  • 问题内容: 如何使div填充剩余宽度? 我如何才能填满其余部分? 问题答案: 试试这样的事情: div自然会占用其容器的100%宽度,因此无需显式设置此宽度。通过添加与两侧div相同的左/右页边距,它自己的内容被强制置于它们之间。 请注意,“中间格”云 后 的HTML“正确的div”

  • 问题内容: 我正在一个Web应用程序上工作,我希望其中的内容能填满整个屏幕的高度。 该页面具有标题,其中包含徽标和帐户信息。这可以是任意高度。我希望内容div将页面的其余部分填充到底部。 我有一个标题和一个内容。目前,我正在使用表格进行布局,如下所示: CSS和HTML 页面的整个高度已填满,不需要滚动。 对于content div中的任何内容,设置将其放在标题的正下方。有时,内容将是一个实际表,

  • 问题内容: 我有一个如下所示的div页面 样式 我想调整div的高度以填充(或拉伸到)整个div (标有绿色边框),并且不想越过页脚divD。我该如何解决? 问题答案: 只需添加到造型。应该没有必要。