MW211 EXIT

devlog
CSS/float要素の縦幅揃え
2014年02月21日
┌──────────┐
│┌──┬──┬──┐│
││    │    │    ││
││    │    ├──┘│
│└──┤    │      │
│      │    │      │
│      └──┘      │
└──────────┘
float要素を横に並べると、高さが揃わないことがある。
tableタグだったらこんなことにならないのに…などと思ってしまうが
これを解消する方法。

┌──────────────────────────────────────┐
│float           :left;                                                      │
│padding-bottom  : 32767px;                                                  │
│margin-bottom   :-32767px;                                                  │
└──────────────────────────────────────┘
「float:left;」などを定義する要素に、下方向へのとっても大きなパディングと
ネガティブマージンを同時に定義してあげる。
とっても大きなというのは表示ウインドウサイズをはみ出るくらいの大きさ。
ま、指定できる最大値の「32767px」あたりを定義してあげればいい。

これによって、あら不思議、一番長い縦幅に揃ってくれるのだ。
┌──────────┐
│┌──┬──┬──┐│
││    │    │    ││
││    │    ├──┘│
│└──┤    │ ↓ ││
││ ↓ │    │ ↓ ││
│└──└──┘──┘│
└──────────┘
でも、なんか裏技っぽいようなぁ。
なんでdivはtable同等の機能を標準で備えていないんだと
相変わらずの疑問が湧くのであった。

…と思っていたら、将来的には
  「display:table;」(親要素)と「display:table-cell;」(子要素)
ってのが、主流になりそうな感じなのね(IE8から使えてる?)。
分類:CSS