問題は次のとおりです。これらの特性を備えた巨大な背景画像とコンテンツがあります。
- コンテンツは中央に
margin: auto;
配置され、幅は固定されています - コンテンツの位置は画像との関係にあります(画像の中央に収まるように)
- この接続は水平方向のみです(垂直スクロールはすべてを期待どおりに移動します)
これは、実際には、背景画像に位置が固定されているデスクトップデバイスで正常に機能します。
ただし、問題は次のとおりです。コンテンツよりも小さくなるまでウィンドウのサイズを変更すると、コンテンツは左側に固定されますが、予想どおり、背景画像は中央に配置されたままになります。この場合、両方の要素間の接続が失われます。
私はこのトリックを実行するJavaScriptを持っていますが、計算のためにいつでもスムーズではないため、これはもちろん避けたいオーバーヘッドです。
$(window).resize(function(){
container.css('left', (body.width() - img.width()) / 2);
});
私もそのようなことを試みました:
<div id="test" style="
position: absolute;
z-index: 0;
top: 0;
left: 0;
width: 100%:
height: 100%;
background: transparent url(path) no-repeat fixed center top;
"></div>
ただし、これにより、上記と同じ問題が発生します。
この問題に対するエレガントなCSSソリューションはありますか?
デモ
ノート
画像サイズは固定されており、既知であり、ブラウザによって拡大縮小されることはありません。