【发布时间】:2013-10-06 21:54:20
【问题描述】:
我正在使用最后一个表格行高度为 100% 的 css 表格 - 以填充剩余的高度。
这适用于我的跨浏览器(包括 IE)。
但是,如果我在最后一个表行中添加一些具有固定高度的 div(这是动态内容 - 我不知道其中有多少),最后一个 div 的高度为:100% - 按顺序填满最后一个表格行。 - 像这样:
现在这在 IE 中不起作用(甚至 IE10)
我必须做什么才能在 IE 中完成这项工作?
(编辑:与 cmets 中的正确指针一样:它在任何浏览器中都不起作用 - 尽管在 Chrome 和 firefox 中它看起来 像它一样工作 - 高度:100% 在第三行的最后一个 div 上并没有填满剩余的高度,而是占据了 row3 的完整高度......
所以我尝试在第 3 行使用表格行:- FIDDLE... 现在 this 在其他浏览器中有效,但在 IE 中仍然无效!)
标记
<div class="table">
<div class="row row1">row1</div>
<div class="row row2">row2</div>
<div class="row row3">
<div class="row3a">row3a</div>
<div class="row3b">row3b</div>
<div class="row3c">row3c</div> <!-- in IE this doesn't fill the last row -->
</div>
</div>
CSS
.table
{
display: table;
width: 600px;
height: 300px;
}
.row
{
display: table-row;
}
.row1
{
height: 50px;
background: pink;
}
.row2
{
height: 100px;
background: orange;
}
.row3
{
height: 100%;
background: yellow;
}
.row3a
{
height: 30px;
background: purple;
}
.row3b
{
height: 60px;
background: aqua;
}
.row3c
{
height: 100%;
background: brown;
}
【问题讨论】:
-
对 row1、row2 和 row3 特定规则使用 id。
-
@ArunAravind 我这样做是为了为每个元素显示不同的颜色,以便您可以看到发生了什么
-
我一直发现,如果你想跨浏览器兼容 CSS 表格,你实际上应该模拟整个表格。也就是说,使用嵌套 div 三层深,分别为
display:table、display:table-row和display:table-cell。 -
您可以在
row3中添加另一个包装器吗? (在行和实际内容之间) -
@avrahamcool - 是的,虽然我宁愿不这样做。
标签: html css css-tables