我在一个设置为对齐块display:inline-block
的 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 是唯一的方法,我很乐意看到它的实际应用。
供参考 - 类似的问题,但没有一个被彻底解释: