我正在尝试使用display:table-cell
创建两个相同高度的列,然后在前两列的顶部放置第三个相同高度的叠加div以隐藏它们。两个相同高度的列工作。但我无法弄清楚如何使第三个div与前两个相同的高度, AND 位于它们之上。
目标:
请参阅以下小提琴:http://jsfiddle.net/rEAYb/1/
HTML
Some filler content that should not be covered.
<div class="Table">
<div class="Row">
<div class="Cell Left">
Left<br/>
sdfgsdfg<br/>
sdfgsd<br/>
fgsdfg<br/>
sdfg<br/>
dsfgsdfg<br/>
sdfgsdfgdsfg<br/>
</div>
<div class="Cell Right">Right</div>
<div class="Cell Cover"> </div>
</div>
</div>
Some filler content that should not be covered.
CSS
.Table{
display:table;
}
.Row{
display: table-row;
position:relative;
}
div.Cell{
padding:18px;
padding-bottom:60px;
padding-top:40px;
width:480px;
display: table-cell;
}
div.Cover{
background:#444;
opacity:.5;
position:absolute;
top:0px;
left:0px;
}
div.Left{
background:green;
}
div.Right{
background:blue;
}
答案 0 :(得分:1)
您可以按照以下方式获得所需的效果:
首先,按如下方式更改HTML:
<div class="Cover"></div>
叠加层可以是一个简单的块元素,因此请删除.Cell
类。请注意,.Cover
元素可以留空。
CSS需要调整如下:
.Table {
display:table;
position:relative;
}
.Row {
display: table-row;
}
div.Cover {
background:#444;
opacity: 0.9;
position:absolute;
top:0;
bottom: 0;
left:0;
right: 0;
}
将position: relative
应用于.Table
而不是.Row
。
在div.cover
上,添加底部和右侧的附加框偏移量。
小提琴:http://jsfiddle.net/audetwebdesign/pyxaN/
这种定位依赖于CSS 2.1,因此在大多数浏览器中都应该如此。