css - float :left div's 的垂直对齐

标签 css html css-float vertical-alignment

我有大约 10 个宽度相同但高度不同的 div,我希望它们尽可能紧密地组合在一起。

当设置为向左浮动时,它们不会垂直对齐,而是与上面“行”的底部对齐。

我在下面模拟了一个小例子,想去掉空白。你有什么建议吗。我仅限于使用这种格式,因为内容是在外部交付的。

干杯

<div style="width:500px;">
<div style="display:block; width:250px; height:100px; background-color:#333; float:left;"></div>
<div style="display:block; width:250px; height:180px; background-color:#888; float:left;"></div>
<div style="display:block; width:250px; height:130px; background-color:#354689; float:left;"></div>
<div style="display:block; width:250px; height:90px; background-color:#181; float:left;"></div>
</div>

最佳答案

尝试将第一个向左浮动,然后向右浮动下一个,向左浮动下一个,向右浮动下一个......

编辑 - 回应评论。

如果您知道您将要获取的 span 的最大数量(并假设它不超过您声明的 10 个(因为此方法很快就会变得非常困惑),并且假设 CSS3 不是您可以尝试这样的选项,

<style>
    span, /* all spans get display and width, odd spans get float:left */
    span+span+span, 
    span+span+span+span+span, 
    span+span+span+span+span+span+span {
        display:block;
        width:250px;
        float:left;
    }

    span+span, /* even spans get float:right */
    span+span+span+span, 
    span+span+span+span+span+span, 
    span+span+span+span+span+span+span+span {
        float:right;
    }
</style>

您需要不断添加 span+span+...,直到达到您将拥有的最大连续数。以上只匹配八个。所以这不是最漂亮的方法!

关于css - float :left div's 的垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4445960/

相关文章:

css - 从 child 身上移除变换和透视。 not() 并重新指定不起作用

javascript - Ctrl+p vs window.print() 导致不同的页面设计

jquery识别程序语法

html - 如何在没有百分比的情况下调整 flex 元素的大小?

css - 我可以在本身为 100% 高度的 DIV 中设置 100% 高度吗?

html - CSS IE6 向右浮动

html - 谷歌浏览器 CSS

css - <SELECT> 如果 Chrome 中的宽度较小,则将文本换行到下一行

javascript - HTML 根据屏幕大小更改类名

jquery - 如何在基于 child 的 parent 身上应用CSS