在表格中,如果你有一行数据,该行数据的高度相同,并且该行中的所有单元格都会随着动态内容的增长和缩小而增长和缩小。 (如果一个单元格有大量文本,而其他单元格没有多少,它们的高度都是相同的,让你可以创建列和行)。
随着div浮动布局的流行,使用表格通常被认为是不好的。然而,我如何在仍然保持显示设置为块状的情况下复制这个和其他表格的功能和好处,以实现跨浏览器呢?
我看到了许多hack方法,但它们似乎总是太复杂,互相干扰或需要调整。我正在寻找以下标准可靠的方法:
在包装容器内使div框在一行中具有相同的高度。
在这种情况下,所有类名为“cell”的div都会具有相同的高度,不是固定的高度,而且会浮动,并且对于任何大小的动态内容都将保持不变。
垂直居中内容
在这种情况下,使用上面的示例,所有内容都将垂直对齐到中间,适用于任何大小的动态内容。
使类名为“cell”的div共享基于包装器“row”的公共宽度
在表格中,当您将宽度指定为100%或固定宽度时,除非图像或阻止此项的块,否则单元格将自动尝试所有具有相同的宽度。如何通过浮动的div实现这一点?因为如果你说,将所有“cell”向左浮动,你可以指定一个最小宽度或固定宽度,但我不知道如何让它们共享一个动态的通用宽度,就像一个表格。在浮动的div本身中,它们会缩小到内容的大小。
如何避免内容推向容器/包装器"row"并将其视为块
出于某种原因,当浮动的div在包装器内部时,您可能会获得奇怪的行为,其中内容将像浮动一样“粘”在包装器上。即使有时在结尾处使用
如果您可以为我回答所有关于浮动div的问题,那将不胜感激。请不要告诉我将其分成单独的问题,因为它们都与同一件事相关。请不要告诉我这样问别处会更好。但如果您愿意提供帮助,那就太好了 :)
如果解决方案只是使用
随着div浮动布局的流行,使用表格通常被认为是不好的。然而,我如何在仍然保持显示设置为块状的情况下复制这个和其他表格的功能和好处,以实现跨浏览器呢?
我看到了许多hack方法,但它们似乎总是太复杂,互相干扰或需要调整。我正在寻找以下标准可靠的方法:
在包装容器内使div框在一行中具有相同的高度。
<style>
.cell { float:left; }
</style>
<div class="row">
<div class="cell">Content 1 with more width</div>
<div class="cell">Content 2<br>with<br>more<br>height<br>Content 2<br>Content 2<br></div>
<div class="cell">Content 3</div>
</div>
在这种情况下,所有类名为“cell”的div都会具有相同的高度,不是固定的高度,而且会浮动,并且对于任何大小的动态内容都将保持不变。
垂直居中内容
在这种情况下,使用上面的示例,所有内容都将垂直对齐到中间,适用于任何大小的动态内容。
使类名为“cell”的div共享基于包装器“row”的公共宽度
在表格中,当您将宽度指定为100%或固定宽度时,除非图像或阻止此项的块,否则单元格将自动尝试所有具有相同的宽度。如何通过浮动的div实现这一点?因为如果你说,将所有“cell”向左浮动,你可以指定一个最小宽度或固定宽度,但我不知道如何让它们共享一个动态的通用宽度,就像一个表格。在浮动的div本身中,它们会缩小到内容的大小。
如何避免内容推向容器/包装器"row"并将其视为块
出于某种原因,当浮动的div在包装器内部时,您可能会获得奇怪的行为,其中内容将像浮动一样“粘”在包装器上。即使有时在结尾处使用
<br style="clear:both">
,我也遇到过这种情况。如果您可以为我回答所有关于浮动div的问题,那将不胜感激。请不要告诉我将其分成单独的问题,因为它们都与同一件事相关。请不要告诉我这样问别处会更好。但如果您愿意提供帮助,那就太好了 :)
如果解决方案只是使用
display:table-cell
,我已经尝试过了,它使div的行为不像块,缩小它,背景也会缩小到内容中,在其他方面它也不表现为块。此外,某些版本的IE不支持此功能,因此我正在寻找跨浏览器的解决方案。谢谢。
display:table-row
来定义行,然后添加一个带有display:table
的容器 div。 - Matt Coughlin