我想浮动一组div来制作流畅的布局。如果出于性能/复杂性的原因,我很乐意使用纯CSS和没有js。
目前,我们每行有3个div,周围的元素垂直延伸以容纳最高的div。但当然,当我使页面变得更窄或更宽时,我每行总有3个div。
对于不具有行容器的浮动div,只要所有div具有相同的高度,它就会很好看。但是如果2-div行中的第2个div比第1个行短,那么下一行的第1个div将“卡在”第1个较高div的右侧,将第2行中的第一个位置留空。
解决方案可能是返回行div并使用javascript来在它们之间调整项目div,但这可能很复杂且容易出错。但也许这是唯一的可能性。
我不能做的一件事是对项目div使用固定高度,因为这需要设置足够大的固定高度以容纳最大可能的项目div,这会为每个其他div留下一堆空白空间。
我猜另一种可能性可能是使用固定高度,然后使用js来调整这些高度以消除额外的空间。
答案 0 :(得分:3)
制作display:inline-block
并移除浮动。高度也将成为可选的,它们只是与最高的一个对齐。
答案 1 :(得分:2)
如果可能,请尝试切换到flexbox。 https://css-tricks.com/snippets/css/a-guide-to-flexbox具有很好的视觉效果来说明各种flex样式的工作原理。
例如,您可以使用flex-wrap: wrap;
来处理页面变得太窄时的情况,并使用align-items: stretch
以使它们都具有相同的高度