虽然做了一些标记,但我发现,MSIE10实际上并不“理解”我想要解释的内容。这里是一个再现:如何在“display:table-row”元素中嵌入元素“display:table”以填充MSIE10中的剩余高度?
<!DOCTYPE html>
<html>
<head>
<style>
*
{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html,
body
{
display: block;
height: 100%;
width: 100%;
margin: 0px;
padding: 0px;
}
body
{
background: #eee;
display: table;
}
body > div.header
{
background: #aaa;
display: table-row;
height: 92px;
}
body > div.header > div.layout
{
background: #666;
display: table;
height: inherit;
width: 100%;
}
body > div.main
{
background: #aaa;
display: table-row;
height: 100%;
}
body > div.main > div.layout
{
background: #666;
display: table;
height: 100%;
width: 100%;
}
body > div.main > div.layout > div
{
display: table-cell;
}
div.menu
{
background: #fff;
width: 280px;
}
div.content
{
background: #fff;
}
</style>
</head>
<body>
<div class="header">
<div class="layout"></div>
</div>
<div class="main">
<div class="layout">
<div class="menu">
x
</div>
<div class="content">
y
</div>
</div>
</div>
</body>
</html>
我试图强迫身体的div.main > div.layout
填充剩下的高度,这在Chrome,FF,Opera和Safari浏览器甚至工作。不过MSIE忽略了我的任何尝试。我尝试过使用height: inherit
,但它也没有效果。另一种选择是使用display: block
并使子元素div.menu
和div.content
拥有display: inline-block; height: inherit
,但它也失败了:我无法(或只是不知道如何)使div.content
正确填充剩余宽度。
所以这里是问题:我该怎么做?
问候。
你可以在这里下载测试文件:http://codepen.io/anon/share/zip/eLAGI/(html和css单独的文件夹) –