2013-07-19 18 views
8

したがって、1つのdiv内に3つのdivがあります。親divの幅を埋めるように子divを展開する

<div class="parent"> 
<div class="child> Text</div> 
<div class="child">Text</div> 
<div class="child">Text</div> 
</div> 

子供のdivsが親の幅を埋めるようにします(子供の合計幅は親でなければなりません)。しかし、これは起こっていない、私は不足している。これは、子divがコンテンツに基づいて幅を設定しているためです。

私は何をしたいのですか?

CSS-

.child { 
    background: white; 
    color: #a7a9ac; 
    cursor: pointer; 
    font-size: 15px; 
    border-right: 1px; 
    border-top: 0; 
    border-bottom: 0; 
    border-left: 0; 
    border-style: solid; 
    border-color: @faded-grey; 
    padding-right: 10px; 
    margin: 0 auto; 
    height: 100%; 
} 

.parent { 
    border-top: 1px; 
    border-left: 0; 
    border-bottom: 1; 
    border-style: solid; 
    border-color: @faded-grey; 
    border-right: 0; 
    width: 100%; 
    margin-right: 0px; 
    height: 80px; 

} 
+0

あなたが使用しているCSSを投稿してもらえますか? – cr0atIAN

+0

多くの方法がありますが、それはあなたが望むものによって異なります。内容が幅を決定した後、_last_子divが残りのスペースを埋めるようにしますか?あるいは、width:33%で均等に区切りたいですか? –

+0

CSSを設定しました。幅:33%を試しましたが、divを1つ上に置きます。 – praks5432

答えて

8

あなたはいつも3人の子供があるでしょうわかっている場合は、単純に使用することができます。

.parent > .child { 
    float: left; 
    width: 33%; 
} 

.parent { 
    overflow: auto; /*or whatever float wrapping technique you want to use*/ 
} 

はあなたがそこにどのように多くの子供たちがわからない場合、あなたがする必要がありますCSSテーブル、フレックスボックスを使用するか、またはインラインブロックをtext-align:justifyと組み合わせることができます。

8

あなたは.child CSSルールにこれらの3つのプロパティを追加することができます。

width:33%; 
float:left;  
box-sizing: border-box; 

最後の行は、あなたが箱にボーダー、パディングとマージンを追加するとき、それはまた、動作しますを確認します。

ONLINE DEMO

シモンズ:直接関連しているが、上記のフィドルで修正親のためのborder-bottomでエラーが、もありません。あなたは非0の値を使用するときは、ユニットを指定する必要があります:彼らは完全に応答するため

border-bottom:1px; 
+0

'box-sizing:border-box'は魔法です!本当にありがとう。 –

+1

素晴らしいソース!他の回答を尊重して、これが最良の答えだと思います。 – Phil

+0

中央の1つの幅を34%にします。そうでない場合は、コンテナの99%しか満たされません。 – Sami

6

私は素子数の変動に対応するために私の解決策のために必要。

私はこれに興味深い解決策を発見しました。基本的に表のように表示されます。すべての要素の利用可能な共有の幅、これも非常によく、画像の作品: http://jsfiddle.net/8Qa72/6/

.table { 
    display: table; 
    width: 400px; 
} 

.table .row { 
    display: table-row; 
} 

.table .row .cell { 
    display: table-cell; 
    padding: 5px; 
} 

.table .row .cell .contents { 
    background: #444; 
    width: 100%; 
    height: 75px; 
} 
+1

別の興味深い解決策は、 'display:inline-block'を試してみることです。それは時々人生を節約します;-) –

+0

どうやって?子の間で親の利用可能な幅を均等に分割しません。 JSFiddleで私を見せてもらえますか? –

+0

あなたが何か似たものを望む場合は、各子供の親divのパーセンテージを指定する必要があります 「ダイナミック」アッテッドと「固定」アッチを試しました http://jsfiddle.net/dBeNv/40/ –

関連する問題