例えば、ブログ記事一覧をリストで表示するとタイトル文章の長さがまちまちになっているので、二行にわたるタイトルもあれば、一行ですむタイトルもあって綺麗にそろっていない場合。
- 記事タイトル記事タイトル記事タイトル
- 記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル
- 記事タイトル記事タイトル
- 記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル
こんな感じのやつ。
上辺で揃えればまあ無難に見えるんですが、これをテーブルタグで囲っていたときのように垂直方向での中央寄せになればもっと凄然とした感じになるのになと思ったことありませんか?
実は、CSS3で割り切ってしまえば
display: table-cell; vertical-align: middle; height: 80px; /* 任意の値 */
の指定だけで非常に簡単にできます。
1. HTML部分
リストで並べている場合、中央寄せにしたい要素をdivタグで囲みます。
<ul class="tablecell"> <li><div>記事タイトル記事タイトル記事タイトル</div></li> <li><div>記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル</div></li> <li><div>記事タイトル記事タイトル</div></li> <li><div>記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル</div></li> </ul>
2.CSS部分
中央寄せにするdivタグの部分に、display: table-cell;vertical-align: middle; height:80px;を指定します。
<style type="text/css"> ul.tablecell { margin: 0 auto; padding: 0; width: 300px; list-style: none; border-top: solid 1px #aaa; } ul.tablecell li { border-bottom: solid 1px #aaa; } ul.tablecell li div { padding: 5px 10px; height: 80px; display: table-cell; vertical-align: middle; font-size: 11px; } </style>
-
記事タイトル記事タイトル記事タイトル
-
記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル
-
記事タイトル記事タイトル
-
記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル記事タイトル
こんな感じになります。