中央にラップ (固定幅と動的パディング) があり、いくつかの p タグ内にあります。これらのタグの backgroundColor はブラウザの左側の境界線まで拡張する必要がありますが、コンテンツは中央のコンテンツ領域内にとどまる必要があります。
なんとか JavaScript ( Example ) で作ることができました。
HTML:
<div>
<p>asd</p><br>
<p>asd</p><br>
<p>asd</p>
</div>
JS:
$(document).ready(function() {
$('p').css('padding-left', $('div').css('padding-left')).css('margin-left', "-" + $('div').css('padding-left'));
});
CSS:
div {
width: 300px;
background: green;
padding: 0 calc(50% - 150px)
}
p {
height: 50px;
margin-bottom: 10px;
background: blue;
display: inline-block;
}
しかし、cssのみでそのようにしたいと思います。JavaScript を使用せずにその動作を取得する方法はありますか?
FF、Chrome、iPad iOS5/6 Safari、IE9+に対応している必要があります。
/編集:
これまでの返信に感謝します。インライン要素のように、必要な最小幅が必要なため、p要素でインラインブロックを使用して、右に拡張しないようにしました。しかし、次の要素を新しい行に配置したい (より良い解決策があれば、それは大歓迎です)
PaulvdTool のおかげで、解決策を見つけることができました: http://jsfiddle.net/EFhkH/2/
それでも、インラインブロックの後に改行を強制するより良いアイデアがある場合は、どういたしまして