2011-06-01 10 views
2

ちょっと、 私はCSS3で遊んでいて、3つのdivボックスを使って問題に遭遇しました。 正確なマージンを指定しなくても、それらをラッパーボックスで水平に整列させたいと思っています。 3つのボックスになりラッパーの3つのボックスの水平方向の整列

.box1 { 
background: gray; 
float: left; 
width: 250px; 
padding: 3px; 
margin: 0 auto; 
} 

.box2 { 
background: gray; 
float: left; 
width: 250px; 
padding: 3px; 
margin: 0 auto; 
} 

.box3 { 
background: gray; 
float: left; 
width: 250px; 
padding: 3px; 
margin: 0 auto; 
} 

、それらの間のマージン無しラッパーボックスに左整列:

私のアプローチは、このされています。しかし、ボックスに余白を設定すると、ボックスは赤いラッパーに中央揃えされます。正確なピクセル設定なしでこれを行うためのアイデアですか?

+0

ラップされたボックスをラッパーの中央に配置しますか?それ以外の場合はマージンを削除します。0 auto;ラップ部分にのみ設定してください –

+0

これは私が欲しいものです。 – braindump

+1

3つのボックスを目に見えないdiv要素に囲み、div要素をマージンで中央に配置します。0 auto;ボックス内の余白を調整します。 –

答えて

3

Hmm。 float値にはmargin-autoは使用できません。 私はそれらに正確なピクセルマージンを与えます。より多くの制御。

あなたは赤いラッパーの幅を知りたくありませんか?

また、これらのクラスはすべて同じです。「ボックス」と呼んで、すべてのボックスで再利用してください。

.box{ 
    background: gray; 
    float: left; 
    width: 250px; 
    padding: 3px; 
    margin: 3px; 
} 

<div id="red-wrapper"> 
    <div class="box"></div> 
    <div class="box"></div> 
    <div class="box"></div> 
</div> 

EDIT: (。これを考えていたと思った私は、あなたが探している結果を与えるかもしれない別の構造を共有したい。)

.bigbox{ 
    width:33%; 
    float:left; 
} 

.box { 
    background: gray; 
    width: 200px; 
    padding: 3px; 
    margin: 3px auto; 
} 

#red-wrapper { 
    width:100%; 
    background:red; 
    overflow:hidden; 
} 

<div id="red-wrapper"> 
    <div class="bigbox"> 
    <div class="box"> </div> 
    </div> 
    <div class="bigbox"> 
    <div class="box"></div> 
    </div> 
    <div class="bigbox"> 
    <div class="box"></div> 
    </div> 
</div> 

jsFiddle

+0

さて、私は間違いなくすべてのマージンを計算しなければなりませんか?吸う。 – braindump

+0

これは私がもう一度聞くことになっていた答えです。 – Xolve

+0

@Xolve喜んで助けてください。 :) –

0

の場合インラインブロックがあなたの目的に適しています。 Fiddle

0

私はこの問題があり、私はフレックスボックスを使用しました。 https://www.w3schools.com/css/css3_flexbox.asp ズームするときに要素に合わせてラップすることができます。

+0

ようこそStackOverflowへ。リンクのみの回答を提供しないでください:リンクが壊れた場合、回答は無関係になります。あなたのポストに最も重要なビットを直接置く:この方法で、それはまた、より簡単かつ迅速に従います。宜しくお願いします – YakovL

関連する問題