我有一堆相同大小的块集合,设置为
display:inline-block
在一个div中,该div设置了text-align:center
以对齐这些块。| _____ _____ _____ _____ |
| | | | | | | | | |
| | 1 | | 2 | | 3 | | 4 | |
| |_____| |_____| |_____| |_____| |
| _____ _____ _____ _____ |
| | | | | | | | | |
| | 5 | | 6 | | 7 | | 8 | |
| |_____| |_____| |_____| |_____| |
| |
这些块水平填充 div,当浏览器窗口缩小时,一些块会断开到新行,创建更多的行和较少的列。我希望所有内容仍然保持居中,并且最后一行与左侧对齐,如下所示:
| _____ _____ _____ |
| | | | | | | |
| | 1 | | 2 | | 3 | |
| |_____| |_____| |_____| |
| _____ _____ _____ |
| | | | | | | |
| | 4 | | 5 | | 6 | |
| |_____| |_____| |_____| |
| _____ _____ |
| | | | | |
| | 7 | | 8 | |
| |_____| |_____| |
| |
目前发生的情况是这样的:
| _____ _____ _____ |
| | | | | | | |
| | 1 | | 2 | | 3 | |
| |_____| |_____| |_____| |
| _____ _____ _____ |
| | | | | | | |
| | 4 | | 5 | | 6 | |
| |_____| |_____| |_____| |
| _____ _____ |
| | | | | |
| | 7 | | 8 | |
| |_____| |_____| |
| |
我无法像某个建议那样添加额外的填充div,因为可能会有任意数量的块,并且行数和列数将根据浏览器宽度而变化。出于同样的原因,我也不能直接为块#7设置样式。无论有多少列,这些块必须始终保持居中。
这里有一个演示示例:
http://codepen.io/anon/pen/IDsxn
我觉得这是可能的。我希望不使用flexbox,因为它只支持ie10+,而我需要支持ie9+。我真的很想要一个纯CSS的解决方案,但如果您告诉我JS是唯一的方法,我很愿意看到它的实现。供参考-类似的问题,尽管没有得到充分的解释: 如何在多行flexbox中左对齐最后一行/行 CSS-将图像的最后一行左对齐到居中的div中 修复流体容器网格中元素的最后一行居中对齐,以使容器保持居中 使用CSS居中多个内联块,并将最后一行与左侧对齐