2013.04.03 CSSのみで画像を背景(画面全体)にアスペクト比を崩さず中央配置する CSSのみで画像を背景にベターっと表示するサンプルを作りました。 背景と言っても実際に配置するのは img要素 です。 ※IE7~8は、画像よりウインドウが狭くなった時、中央配置されません。 ※IE6はアスペクト比が崩れます。 ※Media Query と min-*** に対応すれば、IE6~8でも意図した動作になるはずです。 サンプル HTML <!-- 画像のサイズは指定しない --></p> <div id="bg-fill-image"> <amp-img src="http://placekitten.com/g/1024/768" width="1024" height="768" layout="responsive"></amp-img> </div> <div id="wrapper"> <!-- 通常のコンテンツはここに書く --> </div> <p> CSS html { /* 内包する要素に関わらず高さを保持する */ height: 100%; } body { margin: 0; padding: 0;</p> <div class="highlighter-rouge"> <pre class="highlight"><code>/* 内包する要素に関わらず幅・高さを保持する */ width: 100%; height: 100%; /* IE6対応 */ _overflow-y: hidden; _overflow-x: auto; } #bg-fill-image { /* 背面に固定表示 */ position: fixed; top: 0; left: 0; z-index: -1; /* 内包する要素に関わらず幅・高さを保持する */ width: 100%; height: 100%; /* 画像サイズより小さくならないようにする */ min-width: 1024px; min-height: 768px; /* ハミ出した部分は隠す */ overflow: hidden; /* IE6対応 */ _position: absolute; } #bg-fill-image img { /* line-height 消し */ display: block; /* この指定でアスペクト比が変わらないようになる */ min-width: 100%; min-height: 100%; /* IE6対応 */ _width: 100%; _height: 100%; } /* 画像の幅よりウィンドウの幅が狭い場合 */ @media screen and (max-width: 1024px){ #bg-fill-image { /* ウィンドウの幅/2 - 画像の幅/2 */ left: 50%; margin-left: -512px; } } /* 画像の高さよりウィンドウの高さが狭い場合 */ @media screen and (max-height: 768px){ #bg-fill-image { /* ウィンドウの高さ/2 - 画像の高さ/2 */ top: 50%; margin-top: -384px; } } </code></pre> </div> <p>/* 通常のコンテンツを囲うラッパー <em>/ #wrapper { /</em> IE6対応 */ _position: relative; _width: 100%; _height: 100%; _overflow: auto; } 参考にさせていただいたサイト CSSのみでIE6にposition:fixedを対応させる | CSS-EBLOG ディスプレイのサイズに合わせて画面いっぱいに背景画像を表示するCSSやjQueryプラグインいろいろ ツッコミなどありましたら、コメントまたはツイッターでお願いします。