2011-08-16 11 views
3

最小限のコードで3つのdivを水平にどのように配布しますか?Vertical Div Spacing

私は同じクラスを持つ3つのdivを持っているので、各divの間に19ピクセルの間隔で水平に分散する必要があります。

私の解決策は現在、最初の2 divに19ピクセルの右マージンを与え、19ピクセルの左マージンを与える別のクラスを3 divに割り当てます。

これは仕事を終わらせるが、もっと良いやり方があるように感じる。理想的には、3つのdivはすべて同じクラスを持ちます。

答えて

7

参照:adjacent sibling combinatorを使用していますhttp://jsfiddle.net/thirtydot/q6Hj8/

.yourDivClass + .yourDivClass { 
    margin-left: 19px 
} 

.yourDivClassによって先行されているすべての.yourDivClassmargin-leftを適用する - つまり、全ての第1を除きます。

+0

感謝です!それは素晴らしい仕事でした。これは、私がCSSセレクタに遭遇した最初のことです。ブラウザー間の互換性/サポートに関する問題はありますか? – sheepgobeep

+3

ようこそ。 '+'は古代のIE6(*はあなたがもう気にしないはずです)を除いて*どこでも動作します。 – thirtydot

1

右側に2つの列が必要です。 3番目の列は余分なマージンを必要としません。ボーダーが追加されたので、あなたはそれをフィドルで見ることができます。ここで

div.hasMargin 
{ 
    margin-right: 19px; 
} 

div.column 
{ 
    border-color: black; 
    border-style: solid; 
    border-width: 1px; 
    float: left; 
}

fiddle

+3

@thirtydotはシンプルさでそれを釘付けにしたと思います。 – Sparky

+1

これを使用したい場合(IE6サポートの唯一の理由)、それを反転し、複数の 'hasMargin'クラスの代わりに' noMargin'クラスを1つ追加する方が良いでしょう:http://jsfiddle.net/ jkLAK/1 / – thirtydot