私はかなり奇妙な問題を発見しました。私はそれを説明する方法を知っていると思います。私はそれを修正する方法がわかりません!
ヘッダー、「ページコンテンツ」、フッターを含むdiv#container(100%の最小高さ(IEの高さ)を持つdiv)を持つページがあります。 div#containerの背景画像は固定されているはずです(固定位置ではなくbackground-attachment: fixed
で、スクロールすると画像が追従します)。
問題は、CSSのbackground-tagに修正された添付ファイルが追加されると、背景画像がdivの外側に配置されることです。
CSSは次のとおりです:(background-attachment: fixed;
なし)
div#container {
position:relative;
width:900px;
margin:0 auto;
background-color: #ccffff;
background-image: url("pics/sign.jpg");
background-repeat: no-repeat;
background-position: right top;
height:auto !important;
height:100%;
min-height:100%;
}
margin:0 auto;
はdivを中央に配置し、最初の!important
はheight:
でIEに特定の高さタグを無視させることです。これは次の場合に必要です。 min-height: 100%
が機能するはずです。
これを追加すると...
div#container {
position:relative;
width:900px;
margin:0 auto;
background-color: #ccffff;
background-image: url("pics/sign.jpg");
background-attachment: fixed; //This is what is added to the code-sample
background-repeat: no-repeat;
background-position: right top;
height:auto !important;
height:100%;
min-height:100%;
}
...背景画像がdivの外に移動しています。これについて説明しましょう。背景画像の唯一の見える部分は、まだ<div id="container">
の内側にあるものですが、画像の一部がdivの外に移動して見えなくなりました。
背景画像が固定されると、背景画像が部分的に非表示になり、divの外側に移動します。画像はブラウザウィンドウの右上に配置され、divの右上には配置されません。
皆さんが私を助けてくれることを願っています!
この動作は実際には正しいです。 attachment: fixed
である背景は、それが適用される要素ではなく、ビューポートを基準にしています。これは実際には、Eric Meyerの Complex Spiral デモの基礎です。
Div内で背景の位置を固定することはできませんが、最も簡単な解決策は、イメージのサイズのdivを作成することです。画像を背景にして、position:absolute
を使用して配置するdivの右上隅でright:0px;top:0px
に設定します。親divがposition:relative
であることを確認してください。そうしないと、そのdiv内に絶対的に配置されません。
background-Origin
プロパティ、おそらくborder-box
値は問題を解決します。また、background-size
、cover
とcontain
はサポートされており、非常に便利です。