CSS2 + CSS3を使用し、Javascriptを使用せずにこれを行うためのクロス(デスクトップ)ブラウザソリューションがあります。
で動作します
- IE5 +
- Gecko(Mozilla、Firefox、Netscape 7)
- Opera 7+
- Konqueror 3+
- Webkitブラウザ(Safari、Google Chrome)
- その他多数(モバイルブラウザはテストされていません)
ドキュメント:高さが不明なCSSの決定的なソリューションでの垂直方向のセンタリング:
http :
//www.jakpsatweb.cz/css/css-vertical-center-solution.htmlクリーンなjsFiddleの例:http://jsfiddle.net/WYgsP/
HTML
<div class="outerBox">
<div class="helper">
<div class="boxWithUnknownHeight">
any text<br>
any height<br>
any content, for example generated from DB<br>
everything is vertically centered
</div>
</div>
</div>
CSS
.outerBox {
display: table;
height: 400px;
#position: relative; /* ie hack */
overflow: hidden;
border: 1px solid red;
}
.helper {
#position: absolute; /* ie hack */
#top: 50%; /* ie hack */
display: table-cell;
vertical-align: middle;
}
.boxWithUnknownHeight {
#position: relative; /* ie hack */
#top: -50%;
border: 1px solid green
}
Firebugなどでテキストや改行を追加しても機能します。無効なCSSハックからCSSをクリーンに保つために、条件付きコメントを使用して、ブラウザー固有のコードで別のCSSを作成すること
をお勧めします。
高さが不明な垂直方向のセンタリングが正確に機能する方法とその理由:詳細な説明
display: table
andまたはdisplay: table-cell
andまたは絶対ポジショニングを使用する他のソリューションはここにあります。