html - 如何使浏览器窗口的 div 高度为 100%?

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

右边的div有一个灰色的background-color,我需要它根据用户浏览器窗口的高度垂直展开。现在,background-color 结束于该div 中的最后一段内容。

我试过height:100%min-height:100%;

最佳答案

有几个 CSS 3 度量单位称为:

Viewport-Percentage (or Viewport-Relative) Lengths

什么是视口(viewport)百分比长度?

来自上面链接的 W3 候选推荐:

The viewport-percentage lengths are relative to the size of the initial containing block. When the height or width of the initial containing block is changed, they are scaled accordingly.

这些单位是vh(视口(viewport)高度)、vw(视口(viewport)宽度)、vmin(视口(viewport)最小长度)和vmax (视口(viewport)最大长度)。

如何使分隔线填充浏览器的高度?

对于这个问题,我们可以利用vh:1vh等于视口(viewport)高度的1%。也就是说,100vh 等于浏览器窗口的高度,与元素在 DOM 树中的位置无关:

HTML

<div></div>

CSS

div {
    height: 100vh;
}

这实际上就是所有需要的。这是 JSFiddle example这个在使用中。

哪些浏览器支持这些新单元?

目前所有最新的主流浏览器都支持此功能,除了 Opera Mini。查看 Can I use...以获得进一步的支持。

这如何与多列一起使用?

对于手头的问题,具有左右分隔符,这里是 JSFiddle example显示包含 vhvw 的两列布局。

100vh100% 有何不同?

以这个布局为例:

<body style="height: 100%">
    <div style="height: 200px">
        <p style="height: 100%; display: block;">Hello, world!</p>
    </div>
</body>

这里的p标签设置为100%的高度,但是因为它包含的div有200像素的高度,200像素的100%变成了200像素,不是 body 高度的 100%。改用 100vh 意味着 p 标签将是 body 的 100% 高度,而与 div 高度无关。看看这个accompanying JSFiddle很容易看出区别!

https://stackoverflow.com/questions/1575141/

相关文章:

javascript - 在 jQuery 中创建一个 div 元素

javascript - 如何将一个元素移动到另一个元素中?

html - 如何为 'select' 框制作占位符?

html - HTML 中 id 属性的有效值是什么?

html - 如何创建一个类似于链接的 HTML 按钮?

html - 从 HTML 页面重定向

php - 如何将 HTML 和 CSS 添加到 PDF 中

html - 如何使 div 不大于其内容?

html - 使一个 div 填充剩余屏幕空间的高度

。使用哪个?">html -