jquery-1.5.1.min.js
function centering(){
//画面とブロック要素の縦横サイズを取得
var windowWidth = $(window).width();
var windowHeight = $(window).height();
var elementWidth = $("#container").width();
var elementHeight = $("#container").height();
if((windowWidth - elementWidth) > 0){
//画面幅の方が大きければその差分サイズの半分をブロック要素の [margin-left] に設定
var marginLeft = (windowWidth - elementWidth)/2;
$("#container").css("margin-left",marginLeft);
}else{
//ブロック要素幅の方が大きければ [margin-left] を0に設定
$("#container").css("margin-left",0);
}
if((windowHeight - elementHeight) > 0){
//画面高さの方が大きければ差分サイズの半分をブロック要素の [margin-top] に設定
var marginTop = (windowHeight - elementHeight)/2;
$("#container").css("margin-top",marginTop);
}else{
//ブロック要素高さの方が大きければ [margin-top] を0に設定
$("#container").css("margin-top",0);
}
}
//ページ読み込み時に実行
$(function(){
centering();
});
//画面がリサイズされたときに実行
$(window).resize(function(){
centering();
});
これなら、画面サイズが小さくなっても、ブロック要素自体はスクロールを使用して全体を表示することができる。
仕様としては、画面サイズがブロック要素より大きければ中央配置。
逆にブロック要素のほうが大きい場合は、ブロック要素の上と左マージンを0にする。