CSS

2010/11/12

div 内で文字を中央に表示させる

今までtable組みでHTMLを書いていた方が、CSSに以降する際に混乱しやすいプロパティ
vertical-align の使い方を紹介したいと思います。

テーブルレイアウトでよく使われる以下のコードを見てください。
<table width="100" height="100">
<tr>
<td valign="middle" align="center">中央に表示</td>
<tr>
</table>
上記のコードをcssレイアウトに変更する際に、CSSの中身を
div#center {
width: 100px;
height: 100px;
text-align: center;
vertical-align: middle;
}
としてしまいがち。

一見正しいように見えますが、実際の表示を見てみると
左右のセンタリングはされているものの、上下のセンタリングがされていません。

それは、 『vertical-align』 がボックスレベル要素ではなく、
テーブルセルの縦方向の揃え位置を指定するプロパティだからです。

じゃあセンタリングはどうすればいいの?という解決策を一つ。
div#center {
width: 100px;
height: 100px;
text-align:center;
line-height:100px;
}
line-heightでボックス要素の高さと同じ値を与えれば良いのです。
が、この方法は、2行以上の文章には利用できないのでご注意ください。
2行以上の文章用はまた別の機会に紹介したいと思います。


melody_bar at 17:01|PermalinkComments(2)TrackBack(0)