上記の写真やライブサイトへのリンクがなければ、正確な答えを提供することは困難です。
それでも、コードを見ると、要素が中央に配置されていますが、要素またはその親に適用される可能性のあるものは考慮されていませmargin
んpadding
。
実例:
次の例を想定して、必要な修正を加えてコードを適用します。
次のマークアップを想定しています。
<div id="pagecontent">
<div id="foobar">I'm at the very middle!</div>
</div>
次のCSSを使用します。
#pagecontent {
margin: 10px;
padding: 10px;
height: 240px;
width: 360px;
border: 1px solid #D9D9D9;
position: relative;
}
#foobar {
position: absolute;
width: 200px;
height: 20px;
line-height: 20px;
border: 1px solid blue;
}
jQueryコードは次のように改善できます。
var $inner = $('#foobar'),
$wrapper = $('#pagecontent');
$inner.css({
'top' : ($wrapper.outerHeight() / 2) - ($inner.outerHeight(true) / 2),
'left' : ($wrapper.outerWidth() / 2) - ($inner.outerWidth(true) / 2)
});
詳細な説明:
jQueryを使用して要素の幅と高さを収集し、同時にパディングとマージンの宣言によって占有されるスペースを取得するには、次を使用できます。
jQuery .outerWidth()関数:
説明:パディングや境界線など、一致した要素のセットの最初の要素について現在計算されている幅を取得します。
.outerWidth([includeMargin])
includeMargin要素のマージンを計算に含めるかどうかを示すブール値。
jQuery .outerHeight()関数:
説明:パディング、境界線、オプションでマージンなど、一致した要素のセットの最初の要素について現在計算されている高さを取得します。値の整数(「px」なし)表現を返します。空の要素セットで呼び出された場合はnullを返します。
.outerHeight([includeMargin])
includeMargin要素のマージンを計算に含めるかどうかを示すブール値。