Javascript を使用する必要はありません。これは CSS で行うことができます。
必要な HTML: (明らかに div を img に変更する必要があります)
<div id="container">
<div id="imgwrapper">
<div id="img">Change this div-tag to an img-tag</div>
</div>
</div>
必要な CSS:
#container
{
position: absolute;
left: 200px;
top: 100px;
height: auto;
overflow: visible;
border: 2px dashed green;
}
#imgwrapper
{
position: relative;
margin-left: -50%;
margin-top: -50%;
padding-top: 25%;
border: 2px dashed blue;
}
#img
{
display: block;
width: 200px;
height: 100px;
border: 2px solid red;
}
jsFiddle リンクについては、ここをクリックしてください
margin-left: 50%;
コンテナーの幅はコンテンツの幅とまったく同じになるため、コンテナー div を使用する場合は明らかに機能します。(追加する必要があるかもしれませんwidth: auto;
)しかしmargin-top: -50%;
、コンテナdivの高さがそれに合わせて変化するため、機能しません。したがって、これを使用するさらに別のラッパーdivがmargin-top: -50%;
必要です。次に、正のパーセンテージを使用してこのエラーを修正する必要がありますベースのパディング。明らかに、これを修正する他の解決策があるかもしれませんが、解決策は次のようなものでなければなりません。