我正试图完成一个简单的'液体布局',左边是两个宽度= 50%的盒子,右边是一个宽度= 50%的盒子,最右边的盒子的高度跟在最左边的盒子上,反之亦然。我希望盒子间的间距为10px,箱子的3D感很好,外面没有边框或边距。如何将元素(DIV/TABLE/other)高度设置为其容器的100%?
我试图只使用DIV标签来实现,但没有成功。由于缺乏时间,我转而采用更为熟悉的TABLE/TR/TD方法。事实上,表格单元高度遵循总表格高度,但是当我在表格单元格中引入DIV标签时,我可以实现我的3D框边框,高度再次缩小。无论我在代码中的哪个位置尝试放置“height = 100%”,我的浏览器似乎都不会采取行动。
该问题与StackOverflow之前已询问的问题有关(链接here)。建议的解决方案是使用TABLE而不是DIV。在我的情况下,如果我想要坚持我的3D盒子和我的单元格之间的间距,这将不起作用。
我在下面包含了我的代码,其中包含两种不同的方法,两种都不起作用。有人可以建议我修复我的代码,以便右边框的高度达到其TD容器的100%(示例中显示为绿色)。任何其他具有相同结果的方法也非常受欢迎。 更新: Tor Valamo发布了一个答案,指出100%的放置位置。不幸的是,结果仅适用于IE和Firefox,而不适用于Chrome。因此搜索继续寻找独立于浏览器的解决方案。
UPDATE:接收一些有用的建议后,我已经发布了自己的解决方案是在这一点上,只有一个接受我。不幸的是它使用TABLE not DIV。 DIV解决方案已经完成了一些工作,对于想要完成这项工作的任何人,源代码可用here。
<html>
<head>
<style>
.outsidetable {
border-collapse: collapse;
border-style: hidden;
}
.outsidecell {
border-width: 10px;
border-color: #FFF;
padding: 0px;
border-style: solid;
background-color: #0F0;
}
.fancybox {
border-style: outset;
border-color: yellow;
border-width: 2px;
background-color: #CCF;
}
</style>
</head>
<body>
<!-- First example, using DIV to draw the boxes
and TABLE/TR/TD for the layout -->
<p>
<table class=outsidetable>
<tr>
<td class=outsidecell><div class=fancybox>
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
</div></td>
<td class=outsidecell rowspan=2><div class=fancybox height=100% style="height: 100%">
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
</div></td>
</tr>
<tr>
<td class=outsidecell><div class=fancybox>
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
</div></td>
</tr>
</table>
</p>
<!-- Second example, using TABLE instead of DIV to draw the boxes
(and again TABLE/TR/TD for the layout) -->
<p>
<table class=outsidetable>
<tr>
<td class=outsidecell><table class=fancybox><tr><td>
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
</td></tr></table></td>
<td class=outsidecell rowspan=2><table class=fancybox height=100% style="height: 100%"><tr><td height=100% style="height: 100%">
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
</td></tr></table></td>
</tr>
<tr>
<td class=outsidecell><table class=fancybox><tr><td>
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
</td></tr></table></td>
</tr>
</table>
</p>
</body>
</html>
嘿,你是对的IE和Firefox,但它不适用于Chrome。我也不太明白为什么会这样;我认为绿色已经证明容器是100%的高度。显然不是。 如果你可以弄清楚如何使它在Chrome中也可以工作,那你就是这样!:) – thomaspaulb 2009-12-12 01:17:16
我对此做了一个新的回答。也适用于Chrome。 :) – 2009-12-12 12:30:55