私はこれを少し調査しました、そして私が見つけたものからあなたには4つの選択肢があります:
バージョン1:テーブルセルとして表示される親div
親divでを使用してもかまわない場合display:table-cell
は、次のオプションを使用できます。
.area{
height: 100px;
width: 100px;
background: red;
margin:10px;
text-align: center;
display:table-cell;
vertical-align:middle;
}
ライブデモ
バージョン2:表示ブロックとコンテンツ表示テーブルセルを含む親div
.area{
height: 100px;
width: 100px;
background: red;
margin:10px;
text-align: center;
display:block;
}
.content {
height: 100px;
width: 100px;
display:table-cell;
vertical-align:middle;
}
ライブデモ
バージョン3:親divフローティングおよびコンテンツdivを表示テーブルセルとして
.area{
background: red;
margin:10px;
text-align: center;
display:block;
float: left;
}
.content {
display:table-cell;
vertical-align:middle;
height: 100px;
width: 100px;
}
ライブデモ
バージョン4:絶対的なコンテンツ位置と相対的な親div位置
このバージョンで私が抱えていた唯一の問題は、特定の実装ごとにcssを作成する必要があるように思われることです。この理由は、コンテンツdivには、テキストが塗りつぶされる高さを設定する必要があり、マージントップはそれから計算されるためです。この問題はデモで見ることができます。コンテンツdivの高さ%を変更し、それに-.5を掛けてマージントップ値を取得することにより、すべてのシナリオで手動で機能させることができます。
.area{
position:relative;
display:block;
height:100px;
width:100px;
border:1px solid black;
background:red;
margin:10px;
}
.content {
position:absolute;
top:50%;
height:50%;
width:100px;
margin-top:-25%;
text-align:center;
}
ライブデモ