ブラウザの幅に合わせてボックスをいい感じに均等に配置する、グリッドレイアウトを作る事ができる。これは、昔からfloat
を使って実現してきた。だが、今はinline-block
を使って簡単に実現できる。inline-block
要素はinline
要素のようなものだ。だが、widthとheightを持つ事ができるという点で異なる。両方のやり方の例を見てみよう。
.box {
float: left;
width: 200px;
height: 100px;
margin: 1em;
}
.after-box {
clear: left;
}
私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はfloatされているよ!
</div>私はclearを使っている。だから、上のボックス達に続いてfloatされたりしない。
</div>同様の事を、display
プロパティの値をinline-block
にすることで実現できる。
.box2 {
display: inline-block;
width: 200px;
height: 100px;
margin: 1em;
}
私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私は、インラインブロックです!
</div>私はclear
を使う必要はない。最高だね!
inline-block
のIE6とIE7のサポートには、さらに手間をかける必要がある。inline-block
について、hasLayout
と結びつけて話す人が時々いるだろう。だが、その話題は古いブラウザのサポートが必要な場合に限られるという事だけ知っておいてくれれば十分だ。興味があれば、IE6とIE7のサポートについての前記のリンクをたどってくれ。ともかく、続けよう。