Html 包裹2个垂直堆叠的分区,1个分区100%高
我已经在互联网上闲逛了一段时间,但我似乎找不到解决问题的方法。 也许你能帮我一下 问题 我试图将一个div环绕在两个垂直堆叠的div周围。此时,我有一个顶部div,它是视口填充(100%高度,100%宽度)和一个底部div,它的高度可变,但宽度为100%。 顶部div用作水平和垂直对齐内容的容器 当我对两个div应用包装时,顶部的一个就折叠了。它将停止填充整个视口高度 榜样 当前HTML如下所示:Html 包裹2个垂直堆叠的分区,1个分区100%高,html,css,height,viewport,stacked,Html,Css,Height,Viewport,Stacked,我已经在互联网上闲逛了一段时间,但我似乎找不到解决问题的方法。 也许你能帮我一下 问题 我试图将一个div环绕在两个垂直堆叠的div周围。此时,我有一个顶部div,它是视口填充(100%高度,100%宽度)和一个底部div,它的高度可变,但宽度为100%。 顶部div用作水平和垂直对齐内容的容器 当我对两个div应用包装时,顶部的一个就折叠了。它将停止填充整个视口高度 榜样 当前HTML如下所示: <div id="top"> <div id="top_content"
<div id="top">
<div id="top_content">Top content</div>
</div>
<div id="bottom">Bottom content</div>
<div id="wrapper">
<div id="top">
<div id="top_content">Top content</div>
</div>
<div id="bottom">Bottom content</div>
</div>
顶级内容
底部内容
当然,使用JSFIDLE:
我需要的HTML如下所示:
<div id="top">
<div id="top_content">Top content</div>
</div>
<div id="bottom">Bottom content</div>
<div id="wrapper">
<div id="top">
<div id="top_content">Top content</div>
</div>
<div id="bottom">Bottom content</div>
</div>
顶级内容
底部内容
同样使用JSFIDLE:
您可以清楚地看到顶部div已折叠
问题
如何包装2个垂直堆叠的div,保持顶部div的视口填充高度?我只需要找出我应该应用于包装器的CSS,可能还有两个包装的div
这很简单,您没有为包装设置任何css参数,它还需要将高度和宽度设置为100%,边距和填充设置为0
#wrapper{
width: 100%;
height: 100%;
margin:0;
padding:0;
}
您还需要给包装一个
高度:100%
通过设置
height:100%
可以告诉元素变为其父元素高度的100%。因此,您需要为#顶部内容
的所有祖先提供100%的高度,以使#顶部内容
占据屏幕高度的100%。您可以使用视口单元vh<代码>100vh=视口高度的100%
如果您未使用
vmin
或vmax
(也回复为@Alin),则支持无效。不幸的是,将包装的100%高度设置为100%并不能完全包装两个堆叠的div:您可以看到灰色(#ccc)背景并不能包装两个div。这也是我遇到的问题之一,事实并非如此(尝试将overflow:hidden
添加到#包装器中,看看会发生什么)。如果对视口单位的支持对您的情况足够好(请参阅),您可以尝试为#top
提供高度:100vh
,而不是在每个元素上使用高度:100%
。这似乎在JSFIDLE中起到了作用。不过,我会先在我的开发环境中测试它。我测试了它,它似乎可以工作!我将做一些更广泛的浏览器测试,但现在我将像这样离开它。谢谢:)使用jquery可以吗?可以将包装高度设置为两个内部div的合并高度。