Mar*_*cel 46 html css firefox internet-explorer
我有一个容器div,它有两个内部div; 两者都应在容器内取100%宽度和100%高度.
我将两个内部div设置为100%高度.这在Firefox中运行良好,但在IE中,div不会伸展到100%高度,而只会伸展到其中文本的高度.
以下是我的样式表的简化版本.
#container
{
height: auto;
width: 100%;
}
#container #mainContentsWrapper
{
float: left;
height: 100%;
width: 70%;
margin: 0;
padding: 0;
}
#container #sidebarWrapper
{
float: right;
height: 100%;
width: 29.7%;
margin: 0;
padding: 0;
}
Run Code Online (Sandbox Code Playgroud)
有什么我做错了吗?或者我错过了任何Firefox/IE怪癖?
小智 75
我认为"在Firefox中工作正常"仅在Quirks模式渲染中.在标准模式渲染中,在Firefox中也可能无法正常工作.
百分比取决于"包含块",而不是视口.
百分比是根据生成的框的包含块的高度计算的.如果未明确指定包含块的高度(即,它取决于内容高度),并且此元素未绝对定位,则该值将计算为"auto".
所以
#container { height: auto; }
#container #mainContentsWrapper { height: n%; }
#container #sidebarWrapper { height: n%; }
Run Code Online (Sandbox Code Playgroud)
手段
#container { height: auto; }
#container #mainContentsWrapper { height: auto; }
#container #sidebarWrapper { height: auto; }
Run Code Online (Sandbox Code Playgroud)
要拉伸到视口高度的100%,您需要指定包含块的高度(在本例中,它是#container).此外,您还需要指定body和html的高度,因为初始Containing Block是"UA依赖".
所有你需要的是...
html, body { height:100%; }
#container { height:100%; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104474 次 |
| 最近记录: |