2016-04-19 4 views
0

とコンテンツにdiv要素の幅を調整します:How to make div not larger than its contents?は<code>display: inline-block</code>設定JS

改行が含まれている場合しかし、それは(jFiddle)が動作しません):

<style> 
.container{ 
    border: solid; 
    display: inline-block 
} 

.box{ 
    background-color: #08c; 
    width: 50px; 
    height: 50px; 
    margin: 20px; 
    display: inline-block; 
} 
</style> 

<div class='container'> 
<div class='box'></div> 
<div class='box'></div> 
<div class='box'></div> 
<div class='box'></div> 
<div class='box'></div> 
<div class='box'></div> 
</div> 

enter image description here

一つにはjQueryを使ってDIVの幅を修正することができCSS when inline-block elements line-break, parent wrapper does not fit new widthに記載されています。この例ではどうしますか?

回答質問は(jFiddle)重複としてマークされているので、私は答えを与えるカントが、これは私の仕事:

<style> 
.container{ 
    border: solid; 
    display: inline-block; 
} 

.box{ 
    background-color: #08c; 
    width: 50px; 
    height: 50px; 
    margin: 20px; 
    display: inline-block; 
} 
</style> 

<script> 
function adjust(){ 
// reset container width 
$('.container').width(''); 
var x = $('.container').width(); 

    // size of box is 90px (50+20+20), so set width to the minimal width which // is dividible by 90px 
    x= x - (x % 90); 
    $('.container').width(x); 
} 

$(document).ready(function(){ 

adjust(); 

$(window).resize(adjust); 
}); 
</script> 


<div class='container'> 
<div class='box'></div><!-- 
--><div class='box'></div><!-- 
--><div class='box'></div><!-- 
--><div class='box'></div><!-- 
--><div class='box'></div><!-- 
--><div class='box'></div> 
</div> 

またボックスはインライン要素なので、私がする必要空白を削除します。そうでなければ、divに収まりません。

enter image description here

+0

私は彼らの周りの単一のラインとアウトラインのすべてのボックスを取得しています。それは間違いないでしょうか? – Himanshu

+0

@Himanshuはい、窓を小さくして改行を強制すると、画像のように隙間ができます。どうすればこれを防ぐことができますか? – Adam

+0

ラインボックスモデルの仕組みではありません。 –

答えて

0

分幅を追加します。あなたのコンテナに566px:

Add min-width

+0

ウィンドウのサイズを変更すると、再びギャップにつながる可能性があります。また、ボックス要素の幅を変更しても機能するソリューションを得たいと思います。 – Adam

関連する問題