【コーディングTips】CSSによるDIV縦位置中央揃え
こんにちは、IT開発センター 川崎です。
お馴染みになりつつある、CSSの小ネタ紹介のお時間です。
以前、DIVタグによる記述に関した記事を書かせていただきましたが、そのDIVタグを使って縦位置中央配置をしたいと考えたことはないでしょうか。
今回はCSSを使用したDIV縦位置中央配置を紹介したいと思います。
htmlソースは以下の通りとなります。
▼html
<div class="table"> <div class="mdl"> <div>縦位置中央</div> </div> </div>
記述方法としてはTableに近いと思いますが、3つのDIVで構成します。
よくありがちなのがCSSへ「Vertical-align:middle」を設定する方法がありますが、それだけでは中央に配置されませんので以下のように記述します。
▼CSS
div.table {
display: table; /*親DIVをTABLE概念へ*/
width: 248px;
height: 118px;
background-color:#EEF;
color: #006;
/position: relative;
}
div.table div.mdl {
display: table-cell;/*小DIVをTD概念へ*/
vertical-align: middle;
/position: absolute;/*IEはTABLE概念が適用されない為必須*/
/top: 50%;
border:1px solid #CCC;
width:100%;
text-align:center;
}
div.table div.mdl div {
/position: relative; /*孫DIVへIE用ポジション設定*/
/top: -50%;
}
左の画像が上記CSSにて表現したものです。少々IE対策が面倒ではありますが、上記のCSSで縦位置中央が実現できます。
DIVをTABLEの様にセルの属性にすることができ、その後「vercital-align:middle」を設定するとTABLEタグの様に扱えます。
IEではその属性が通用しない為、positionで位置指定する必要があります。
この他にもmarginを使用した縦位置中央配置があるようですが、今回はpositionを使用した方法を紹介させていただきました。
もっと簡略的な方法が無いかと日々探している川崎でございました。




このブログを購読する





2011.05.19














