ブロックを整列するよう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 | |
| |_____| |_____| |
| |
任意の数のブロックが存在する可能性があり、行と列の量はブラウザーの幅によって異なるため、1 つの提案のように追加のフィラー div を追加することはできません。同じ理由で、ブロック #7 を直接スタイリングすることもできません。列の数に関係なく、ブロックは常に中央に配置する必要があります。
これは、よりよく示すためのペンです。
http://codepen.io/anon/pen/IDsxn
これは可能ですか?きっとそうあるべきだと思います。flexbox は ie10+ のみであるため、使用したくありません。ie9+ が必要です。私は純粋な CSS ソリューションを本当に望んでいますが、JS が唯一の方法であると言うなら、それを実際に見てみたいと思います。
参考までに-同様の質問ですが、完全に説明されたものはありません。