我有一个包含两列的布局-左div和右div。

右侧的div具有灰色背景色,我需要它根据用户浏览器窗口的高度垂直展开。现在,背景色结束于该分区中的最后一段内容。

我尝试过高度:100%,最小高度:100%;,等


当前回答

最简单的方法就是这样做。

第二部分{背景:红色;高度:100vh;}正文{边距:0px;}<div></div>

其他回答

如果你能绝对定位你的元素,

position: absolute;
top: 0;
bottom: 0;

会做到这一点。

如果要设置<div>或任何元素的高度,也应该将<body>和<html>的高度设置为100%。然后可以将元素的高度设置为100%:)

下面是一个示例:

body, html {
  height: 100%;
}

#right {
  height: 100%;
}

100vw=视口宽度的100%。

100vh=视口高度的100%。

如果要将div宽度或高度设置为浏览器窗口大小的100%,应使用:

宽度:100vw

高度:100vh

或者,如果您想将其设置得更小,请使用CSS calc函数。例子:

#example {
    width: calc(100vw - 32px)
}

非常简单的解决方案,支持跨域,还支持浏览器重新调整大小。

<div style="height: 100vh;">
   <iframe src="..." width="100%" height="80%"></iframe>
</div>

根据需要调整iframe高度属性(将div高度属性保留为100vh)。

为什么80%?在我的真实场景中,我在div中的iframe之前有一个标头,这会占用一些垂直空间-因此我将iframe设置为使用80%而不是100%(否则它将是包含div的高度,但从标头之后开始,并溢出div的底部)。

使用FlexBox CSS

Flexbox非常适合这类问题。虽然Flexbox主要以水平方向布局内容而闻名,但它实际上同样适用于垂直布局问题。您所要做的就是将垂直部分包装在柔性容器中,并选择要展开的部分。它们将自动占用容器中的所有可用空间。