2015-10-08 19 views
5

外側のdivの内側に2つの内側のdivがあり、内側のdivの幅に合わせて外側のdivを自動的に合わせたいとします。それは可能ですか?内側のdivに自動的に合うように外側のdivの幅を設定します

body { 
 
    font-size: 0; 
 
} 
 
#outer { 
 
    border: 1px solid black; 
 
} 
 
.inner { 
 
    font-size: 12px; 
 
    display: inline-block; 
 
    border: 1px solid red; 
 
}
<div id='outer'> 
 
    <div class='inner'>text1</div> 
 
    <div class='inner'>text2</div> 
 
</div>

答えて

8

あなたouter divがブロックレベル要素です。 インラインレベルの要素にする必要があります。 Inline要素には自動的に含まれるコンテンツのサイズが使用されます。あなたが尋ねた質問の面では、ちょうど設定:

display: inline-block 

あなたの外側のdivの上でトリックします。デモのために以下のコードを参照してください:

body { 
 
     font-size: 0; 
 
    } 
 
    #outer { 
 
     border: 1px solid black; 
 
     display: inline-block; 
 
    } 
 
    .inner { 
 
     font-size: 12px; 
 
     display: inline-block; 
 
     border: 1px solid red; 
 
    }
<div id='outer'> 
 

 
    <div class='inner'> 
 
    text1 
 
    </div> 
 
    <div class='inner'> 
 
    text2 
 
    </div> 
 

 
</div>

・ホープ、このことができます!

0

「display:table;」を追加します。 #outerのCSSへ:

例えば:

ディスプレイを使用して
#outer { 
    border: 1px solid black; 
    display: table; 
} 

:あなたは、それは2つの内div#outerにサイズをposition:absolute;float:left;をします追加した場合の表は、インライン

0

を使用するなど、控えめです's。この例では、floatを使用します。 Floatsは一般に、時間の経過とともに変更または拡大/縮小する可能性があるコンテンツに対してはより良いですが、absolute positioningは、ドキュメントのフローまたはナビゲーションバーのようなドキュメントの構造の外側で使用する必要があります。

編集:あなたは以下の投稿display:inline-block方法がうまくいく外側div周りを流れるように他の要素を必要としませんが、あなたはあなたの周り#outerを流れるようにする要素を持っているならば、float:leftが進むべき道となります。 #outerを幅の50%とし、ページの残りの半分に他のものがある場合は、display:inline-blockを使用して、#outerの下に他の要素を配置します。

CodePen link to show difference

関連する問題