もしあなたがそうするなら:
<div style="width: auto; background: red; color: white">test</div>
画面幅全体(100%)を埋めるように引き伸ばされたdivを取得します。それが私が起こらなければならないことです。
ただし、開始位置も設定する必要があります。だから、私はposition: absolute
が必要です。
Position:absoluteを追加すると、div
の幅はその中のコンテンツと同じ幅になります(floatと同様)。これを回避する方法はありますか?
width: 100%
は境界線のサイズなどを考慮していないため、単純に指定することはできません。
Position:absoluteを追加すると、divの幅はその中のコンテンツと同じ幅になります。(floatと同様)。これを回避する方法はありますか?
境界線のサイズなどを考慮していないため、単純にwidth:100%を指定することはできません。
position:absolute; left:0; right:0; top:0
を使用できます。
Width:100%とcss属性のボックスサイズを使用して、ボックスモデルをIE 5.5のように機能させることができます。つまり、パディングと境界線を幅にカウントします。
div.absolute {
width: 100%;
border: 5px solid #000;
background-color: #F00;
position: absolute; top: 100px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
padding: 50px;
}
ここにフィドルがあります: http://jsfiddle.net/dJtm2/
ただし、これは比較的新しいCSS3属性であり、新しいブラウザーでのみ機能するため、注意が必要です。私の例からわかるように、ベンダープレフィックスである恐ろしい逆効果の対策が必要です。
単に次のように書いてください:
div.absolute {
border: 5px solid #000;
background-color: #F00;
position: absolute;
top: 100px;
padding: 50px;
left:0;
right:0;
}
この中でpadding & border
要素の幅を広げないでください。