クライアントの場合、広告を含む本文の左側に絶対divをまとめる必要があります。これまでのところ、これを行う方法を理解した唯一の方法は、絶対divを作成することです。ここでの問題は、絶対位置のdivに黒いスペース(本体の端)があり、この「ガタースペース」広告でページをハグする必要があることです。
これを説明するための最良の方法は、これをページの中心から設定されたピクセル数だけ離して配置することです。私は次のコードでこれを行うことができると思いました:
position: absolute;
left:50%;
margin-right:500px;
ただし、これによりdivがページの中央に保持されます。ページの中央から絶対divを配置することは可能ですか?
広告の幅がわかっている場合は、次のことができます。
position:absolute;
left:50%;
margin-left:-250px;
width:500px;
配置する要素の幅の半分である負のマージン左に注意してください
CSSで簡単にできます。すべての主要なブラウザでの作業
<style type="text/css">
#outer{
width:100%;
height:250px;
background:#232323;
position:relative;
}
#inner{
position:absolute;
width:300px;
height:200px;
background:red;
top:0;
left:50%; /*Important*/
margin:-150px; /* WIDTH/2 */
}
</style>
<div id="outer">
<div id="inner">
</div>
</div>
コンテナdivを中央に作成し、その中にdivを次のように配置できます。
<style type="text/css">
#container {
position: relative;
left:50%;
padding-right:500px;
}
#left {
position:absolute;
left:-500px;
}
</style>
<div id="container">
<div id="left">a</div>
</div>
必ずしも絶対位置を指定する必要はありません。ブロック要素のデフォルトのオーバーフロー動作を利用できます。たとえば、次のようなコードを使用して、目的の結果を得ることができます。
マークアップ:
<div id="adbox">
<div class="content">
<a href="#">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nibh odio, sollicitudin vel sodales vel, dignissim sed lacus. Praesent sed erat sed turpis gravida congue. Nulla facilisi. Nunc eros eros, auctor et auctor in, tempor quis magna. Curabitur in justo libero.</a>
</div>
</div>
<div id="main-content">
<p>Curabitur iaculis, dolor eu interdum fermentum, mi mauris vulputate est, tempus rhoncus leo dolor nec orci. Duis a ante augue. Suspendisse potenti. Proin luctus ultrices ligula, ac luctus lorem pellentesque non. Curabitur sit amet eros dui, quis laoreet felis.</p>
</div>
スタイル:
#adbox {
width: 400px;
height: 0px;
position: relative;
z-index: 0;
margin: 0 auto;
}
#adbox .content {
background: #EEE;
}
#main-content {
width:300px;
margin: 0 auto;
position: relative;
z-index: 1;
background: #CCC;
}
#main-content p {
padding: 0 5px;
}
IE警告:in IE <= 6 height
プロパティは他のブラウザと同じように解釈されますmin-height
:この問題を修正するために、特定のスタイルを追加することをお勧めします。
または、広告を絶対に配置して次のようにすることもできます: http://jsfiddle.net/bssxg/10/
#adbox { width: 400px; position: absolute; z-index: 0; top: 0; left: 50%; margin-left: -200px; }
(左の負のマージンは広告ボックスの幅の半分に等しい)
これはトリックを行います
.centered {
//Assume image is 100 in height and 200 in width
position: fixed;
top: 50%;
left: 50%;
margin-top: -50px; // applying a negative top margin of half the images height
margin-left: -100px; // applying negative left margin of half the images width
}
2020年には、これを行う正しい方法はcalc()
を使用することです。 center
プロパティはありません。位置決めはコーナーから行われます。したがって、最初に左または右から50%
を使用して中心から位置を取得し、次に必要に応じて中心から値を追加または削除します。
したがって、left
を使用して中心から配置するには、これを使用します。ここでは中央の右側に500ピクセルを配置していますが、負の値(中央の左側)または他の単位を使用しても問題ありません(相対または固定)。
.example {
left: calc(50% + 500px);
}
この例でright
プロパティを使用するには、次のようにします。
right: calc(50% - 500px);
参照: