これは私のコードからの抜粋です:
<div id="column2">
<div id="textbox">
<h3>About</h3>
<div id="text">
<img id="portrait" src="images/portrait.png"/>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sollicitudin tristique posuere. Phasellus quis rhoncus felis. </p>
<p>Curabitur condimentum gravida lorem, non accumsan justo facilisis non. Nam at nisi venenatis tortor viverra posuere.</p>
</div>
</div>
</div>
その抜粋のCSSコード:
#textbox {
background:lightgrey;
margin:38px 0 0 0;
width:400px;
font-size:0.825em;
line-height:150%;
}
#textbox p {
margin-top:0;
}
#textbox h3 {
margin: 0 0 15px 0;
}
#column2 {
float:right;
margin-right:150px;
}
#portrait {
float:right;
margin:0 0 10px 10px;
}
間違っているのは、「textbox」divに画像がない場合、中心が画像のある中心と異なることです。私はマージンを使用しています:0自動; ここに含まれていないラッパーdiv全体を中央に配置します。絶対位置で適切に中央に配置できる可能性がありますが(まだテストしていません)、画像が中央に影響するのはなぜですか?画像があるため、ラッパーdiv全体が右に約5〜10ピクセル移動します(テストしました)。助言がありますか?どうもありがとうございます。
フィドル: http: //jsfiddle.net/uVSTJ/1/
編集:センターポジショニングを使用していない場合、問題は発生しません。
編集2:問題を見つけましたが、解決方法がわかりません。ページの一番下に到達したときにのみ発生し、スクロールバーが表示されます。別の場所からマージンなどの計算を開始すると、+数ピクセル右になります。オーバーフロープロパティを使用せずにこれを解決する方法はありますか?