簡単に言えば、私は列と行を備えたレスポンシブWebレイアウトに取り組んでいます。各列の幅は、事前定義された合計幅に関連して設定されます。
列幅/全幅=幅%
高さは固定されています。
問題は、コンテンツの幅を流動的にしたいのですが、マージンとパディングは以下のように固定幅にしたいということです。
コードは次のようになります。
HTML
<body>
<div id="left">Left</div>
<div id="middle">Middle</div>
<div id="right">Right</div>
</body>
CSS
div {
float: left;
padding: 0.5em;
box-sizing: border-box;
width: 33.3333333333333%; height 5em; line-height: 5em; text-align: center;
}
#left {
background-color: red;
}
#middle {
background-color: green;
}
#right {
background-color: blue;
}
http://jsfiddle.net/langoon/Zxn8E/2/
私はいくつかの解決策を考えましたが、それらのどれも私が探していることをしていないようです:
- 「box-sizing」を「margin-box」に設定します。ほとんどのブラウザではサポートされていません。
- 余白の代わりに、境界線を使用します。その境界線が必要で、後で別のスタイルにすることができます。
- 各ボックスを外側の「div」にネストします。DOMが処理する要素の数を最小限に抑えることを好みます。
- ここで提案されているように負のマージンを設定 します。それらの間に固定ピクセルマージンがある流動的な列レイアウト?。行ごとにラッピング'div'が必要なようで、問題が発生する可能性があります。
- JavaScript。結構です。
私はケーキを持って同時にそれを食べようとしていますか、それとも欠点なしでこれを行う方法はありますか?