gpt4 book ai didi

html - 如何将元素(DIV/TABLE/其他)高度设置为其容器的 100%?

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:05 24 4
gpt4 key购买 nike

我正在尝试实现一个简单的“流式布局”,左侧有两个 width=50% 框,右侧有一个 width=50% 框,其中最右边的框的高度跟随最左边的框,反之亦然。我希望盒子之间的间距为 10 像素,盒子具有漂亮的 3d 感觉,并且外部没有边框或边距。

我曾尝试仅使用 DIV 标签来实现它,但没有成功。由于时间不够,我转而使用更熟悉的 TABLE/TR/TD 方法。事实上,表格单元格高度跟随表格总高度,但是当我在表格单元格中引入 DIV 标签以便实现我的 3D 框边框时,高度再次缩小。无论我在代码中的哪个位置尝试放置“height=100%”,我的浏览器似乎都不会对其进行操作。

该问题与之前在 StackOverflow 上提出的问题有关(链接 here)。建议的解决方案是使用 TABLE 而不是 DIV。在我的例子中,如果我想坚持我的 3D 框和我的单元格之间的间距,这将不起作用。

我在下面包含了我的代码,其中包含两种不同的方法,但都不起作用。有人可以建议我一种方法来修复我的代码,以便右侧框的高度将变为其 TD 容器大小的 100%(示例中显示为绿色?)。任何其他具有相同结果的方法也非常受欢迎。更新: Tor Valamo 发布了一个答案,指出了 100% 的位置。不幸的是,该结果仅适用于 IE 和 Firefox,不适用于 Chrome。因此,继续搜索独立于浏览器的解决方案。

更新: 在收到一些有用的建议后,我发布了我自己的解决方案,这是目前我唯一可以接受的解决方案。不幸的是它使用 TABLE 而不是 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>

最佳答案

首先,不要使用表格进行布局。这是语义上的禁忌。顺便说一句,请参阅The Perfect 3 Column Liquid Layout by Matthew James Taylor . Matthew 创建了一个很好的多列流式布局实现,可以按百分比或 em 宽度调整大小。

关于html - 如何将元素(DIV/TABLE/其他)高度设置为其容器的 100%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com