LoginSignup
1
0

More than 3 years have passed since last update.

【CSS】レイアウト方法まとめ

Last updated at Posted at 2019-07-05

概要

CSSを使った様々なレイアウト方法の検証と考察。

実装

@kura07氏のCSS Grid Layout を極める!(基礎編)で例示されている以下のレイアウトを様々な方法で実装した。要素によって widthheight をそれぞれ固定ないし可変にしている。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f38373832322f35383366363238392d303931372d633037612d383361392d6233643733623833333565662e706e67.png

なお、個人的なコードの書きやすさから、HTMLはPug、CSSはSCSSで記述している。

float + calc()

calc() 関数を用いて可変部の長さを動的に計算する。どの要素で float がどちらに向いているのかを把握し、必要に応じてclearfixなどの対応をしなければならない。

See the Pen calc() by Takuya HARA (@takuyahara) on CodePen.

ブラウザ対応状況
https://developer.mozilla.org/ja/docs/Web/CSS/calc#Browser_compatibility

Flexbox

要素を並べる方向を縦か横の1次元で指定する。縦横へのレイアウトが入り乱れる場合は、都度ラッパー要素が必要であり、今回の例ではラッパー要素を3つ使用している。

See the Pen Flexbox by Takuya HARA (@takuyahara) on CodePen.

ブラウザ対応状況
https://developer.mozilla.org/ja/docs/Web/CSS/flex#Browser_compatibility

Grid Layout

要素を並べる方向を縦横の2次元で指定するため、ラッパー要素は1つだけで良い。テーブルレイアウトをCSSで実現したようなもので、直感的で分かりやすい。最新のプロパティであるためレガシーブラウザへの対応が課題か。

See the Pen Grid Layout by Takuya HARA (@takuyahara) on CodePen.

ブラウザ対応状況
https://developer.mozilla.org/ja/docs/Web/CSS/grid-template#Browser_compatibility

おまけ

Table Layout

かつて使われていたtableタグを用いたレイアウト。直感的でレガシーブラウザにも対応するが、セマンティクスの観点から推奨されない。

See the Pen Table Layout by Takuya HARA (@takuyahara) on CodePen.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0