CSSの横並びレイアウト
CSSによる折り返し可能な横並びレイアウトの様々な方法をご紹介します。
基準となるHTMLとCSSは次のコードです。
HTML
CSS
floatプロパティによる方法
- ※ IE6以上対応
- ※ 高さが合わない要素があると崩れて表示されることがある
CSS
アイテム間の余白はすべてのアイテムに上と左にmarginを取り、親要素に同じ値の負数(ネガティブマージン)を取っています。
display:inline-blockによる方法
- ※ IE6以上対応(ただしIE6とIE7はハックで対応)
CSS
アイテム間の余白はすべてのアイテムに上と左にmarginを取り、親要素に同じ値の負数(ネガティブマージン)を取っています。
display:flexによる方法
- ※ IE10以上対応
CSS
アイテム間の余白はカラムに合わせて必要な箇所のみに取っています。
上記コードの場合、2列目3列目だけに左にmarginを取り、2行目以降に上にmarginを取ります。
display:gridによる方法
- ※ IE10対応
(ただしgird-template-columnsやgird-template-columns、grid-gapに対応しないため行列の個数を固定して対応)
CSS
アイテム間の余白はgrid-gapプロパティで取ります。
ただし、IEはgrid-gapプロパティに対応していないため、grid-columns/grid-rowsで余白分のエリアを取って配置します。