文章量に差がある2つのボックス。
この2つを横並びさせると高さが合いません。
そんな時、ボックスの高さを揃える指定があります。
ご覧ください。
横並びボックスの高さを揃える指定
実現したいのは、こちらです。
こっちはテキストが多めかもしれません。
こっちは少なめです。
テキスト量の違うボックスが横並びしてますが、高さは揃っていますね。
inline-block
とflex
の場合で、それぞれ見ていきましょう。
inline-blockで横並びさせる場合
1つ目はinline-block
で横並びさせる場合。
おそらく、このケースで高さが揃わないはずです。
<ul>
<li>こっちはテキストが多めかもしれません。</li>
<li>こっちは少なめです。</li>
</ul>
li {
display: inline-block;
width: 48%; /* ボックス間に余白を設けるため */
border: solid 1px #e5e5e5;
}
こっちはテキストが多めかもしれません。
こっちは少なめです。
<ul>ではなく、<li>にdisplay: inline-block
と指定します。
横並びさせると高さが揃いません。
heightの指定で高さを同じに
高さを合わせるには、height
を指定しましょう。
というわけで、<li>にheight: 90px
と追記。
<ul>
<li>こっちはテキストが多めかもしれません。</li>
<li>こっちは少なめです。</li>
</ul>
li {
display: inline-block;
width: 48%; /* ボックス間に余白を設けるため */
border: solid 1px #e5e5e5;
height: 90px;
}
こっちはテキストが多めかもしれません。
こっちは少なめです。
ボックスの高さが同じになりました。
しかし、ご覧のようにボックスの上端がズレています。
これはvertical-align
の初期値がbaseline
だから。
※初期値 … プロパティを指定しない時、はじめから与えられている値。
li {
display: inline-block;
width: 48%; /* ボックス間に余白を設けるため */
border: solid 1px #e5e5e5;
height: 90px;
vertical-align: baseline; /* 初期値なので指定しなくても、baselineとなる */
}
vertical-align: baseline
だと1番下の行を揃えます。
vertical-alignでボックス上端を揃える
ボックス上端を揃えるには、<li>にvertical-align: top
または bottom
とします。
<ul>
<li>こっちはテキストが多めかもしれません。</li>
<li>こっちは少なめです。</li>
</ul>
li {
display: inline-block;
width: 48%; /* ボックス間に余白を設けるため */
border: solid 1px #e5e5e5;
height: 90px;
vertical-align: top;
}
こっちはテキストが多めかもしれません。
こっちは少なめです。
ボックスの上端が揃いましたね。
flexで横並びさせる場合
2つ目はflex
で横並びさせる場合。
<ul>
<li>こっちはテキストが多めかもしれません。</li>
<li>こっちは少なめです。</li>
</ul>
ul {
display: flex;
justify-content: space-between; /* <li>を両端に配置 */
}
li {
width: 48%; /* ボックス間に余白を設けるため*/
border: solid 1px #e5e5e5;
}
こっちはテキストが多めかもしれません。
こっちは少なめです。
<ul>にdisplay: flex
とすれば、それだけで<li>の高さが揃います。
理由は、<ul>のalign-items
の初期値がstretch
だから。
ul {
display: flex;
justify-content: space-between; /* <li>を両端に配置 */
align-items: stretch; /* 初期値なので、指定しなくてもstretchとなる */
}
li {
width: 48%; /* ボックス間に余白を設けるため*/
border: solid 1px #e5e5e5;
}
align-items
は縦方向の位置を揃える指定です。
stretch
は親<ul>にスペースがある場合、それを埋めてくれます。
flex
で横並びさせる方がカンタンですね。
【参考外部サイト】『Flexboxチートシート』の「align-items」|Webクリエイターボックス
クリックすると該当箇所にジャンプします。
参考サイト
この記事は、CSS3をもとに書きました。
CSS3はcssのルールブックみたいなもので、その最新版です。
やや専門家向けなので、お時間ある方だけチラッとご覧ください。
まとめ
横並びボックスの高さを揃える指定を紹介しました。
テキスト量が違う時は活用できるので、参考にしてみて下さい。
要素の高さの決まり方については、こちらの記事をどうぞ。