HTMLに次のdivがあります。
<div class="main">
<div class="bgimage"></div>
<div class="content">Text</div>
私の体の中に直接あります。
次のCSSの場合:
body {
margin: 0;
padding: 20px 0;
}
.content {
filter: alpha(opacity=50);
-moz-opacity: 0.5;
opacity: 0.5;
}
.content {
position: relative;
z-index: 1;
border: #000 thin solid;
width: 960px;
margin-left: auto;
margin-right: auto;
background-color: #000;
}
.bgimage {
position: absolute;
z-index: -1;
width: 1024px;
height: 768px;
margin-left: auto;
margin-right: auto;
background-image: url(bg1.jpg);
}
基本的に、背景画像を表示するDivがあり、その上に透明度を持つ別のDivがあります。この現在のコードは機能しますが、私の問題は、コンテンツdivを上から降ろそうとするときです。
たとえばmargin-top:100pxを追加すると、画像もダウンします。同じZインデックス上にない場合は触れないと思いますか?なぜマージンを追加するとbgimage divも強制されるのですか?
また、コンテンツクラスのdivを絶対位置とzindexの位置に設定しようとしましたが、これは中心になりません。これをどのように解決すればよいですか?
あなたのCSSは
.bgimage { position: relative; }
.content { position: absolute; }
したがって、.contentは.bgimageに対して相対的に配置され、現在のCSSは.bgimageの位置をドキュメントに対して相対的にします。
cSSの配置については、これを参照してください link
_z-index
_は配置とは関係ありません。要素のレンダリング順序にのみ影響します。 _Position: relative
_は、要素を本来あるべき場所にレンダリングし、最終的なleft
、right
、top
、またはbottom
座標で要素をオフセットするようにブラウザに指示します。したがって、マージン、パディングなどが引き続き影響します。
_position: absolute
_のみが位置の独立性を保証します。
コードに「z-index」や「position:absolute」の必要はまったくありません-まだ明らかにしていない複雑な問題がない限り。
背景をDIV class = "main"の中央に配置するには:
body{margin:0;padding:20px 0;}
.main{background:transparent url(bg1.jpg) no-repeat center top;}
.content{border:#000 thin solid;width:960px;margin-left:auto;margin-right:auto;background-color:#000;opacity: 0.5;filter:alpha(opacity=50);-moz-opacity: 0.5;}
「センタートップ」は、背景画像のセンタートップを、適用先の要素のセンタートップに配置します。あなたは適用したいかもしれません
min-width:1024px;_width:1024px;
同じ要素に-狭いウィンドウが端を非表示にしないようにします(これにより、「ビューポート」が背景の寸法より狭い場合に要素のレンダリング方法が変更されます)。
変更前のコードで実行できる唯一のことは、変更後のコードではできません。
「z-indexing」と上記の「position」プロパティについて述べた内容の一部は正しいですが、言及できませんでした。「フロー」からclass = "content"要素を取り出しました。祖先要素は、class = "content"要素のコンテンツが増加しても成長しません。これは、「zインデックス」要素と「フロー内」に留まる要素との間の重要かつ基本的な違いです。
その他の注意事項:
CSSの絶対配置は常に、「position:relative」を持つ最新の祖先に対して「相対的」に行われます。それ以外の場合は、デフォルトでbodyタグが使用されます。含めたCSSがそれらのdivに影響するすべてのものである場合、.content divは.main divに対して相対的に配置されますが、.bgImageはタグに基づいて配置されます。
.contentと.bgImageの両方をロックステップで移動する場合は、div.mainに「position:relative」を追加する必要があります。