在表格中,如果您有一行,则该行的高度相同,并且该行中的所有单元格都会随着动态内容而增长和缩小。(如果一个单元格有大量文本,而其他单元格的文本不多,那么它们的高度都相同,让您可以创建列和行)。
随着使用表格的 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>
在这种情况下,“单元格”类的所有 div 将具有相同的高度,并且根本不是固定高度而是浮动的,并且对于任何大小的动态内容都将保持这种状态。
垂直居中内容
在这种情况下,使用上面的示例,对于任何大小的动态内容,所有内容都将垂直对齐到中间。
使“单元格”类的 div 共享基于包装“行”的公共宽度
在表格中,当您将宽度指定为 100% 或固定宽度时,单元格将自动尝试全部为相同宽度,除非图像或块状项目禁止这样做。如何通过浮动 div 实现这一点?好像您说,将所有“单元格”浮动到左侧,您可以指定最小宽度或固定宽度,但我知道没有办法让它们共享一个动态的公共宽度,如表格。在浮动的 div 中,它们本身会缩小到内容的大小。
如何避免内容推送到容器/包装“行”并将其视为只是一个块
无论出于何种原因,当浮动 div 位于包装器内时,您可能会出现奇怪的行为,其中内容将“粘”到包装器上,就好像也在浮动一样。即使有时在<br style="clear:both">
最后使用 a 时,我也会发生这种情况。
如果您能为我回答有关浮动 div 的所有这些问题,我们将不胜感激。请不要告诉我将其分解为单独的问题,因为它们都与同一件事有关。请不要告诉我这最好在其他地方问。但是,如果您希望有所帮助,那就太好了:)
如果解决方案display:table-cell
单独使用,我已经尝试过了,它使 div 不表现为块,缩小它,背景也缩小到内容,并且在其他方面它不表现为块。还有一些版本的 IE 不支持这个,我正在寻找一个跨浏览器的解决方案。谢谢你。