2012-03-12 10 views
3

私はdisplay:inline-blockと6行を1行に入れました。しかし、彼らはお互いの間に奇妙な空白を持っている、どうすればそれを取り除くことができますか?彼らは1つの行に容器に収まる必要があります。`display:inline-block`要素に奇妙なマージン

フィドル:http://jsfiddle.net/y7L7q/

HTML:

<div id="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> 

CSS:

#container{ 
    width:300px; 
    border:1px solid black; 
} 
.box{ 
    display:inline-block; 
    height:50px; 
    width:50px; 
    background-color:black; 
    margin:0; 
    padding:0; 
} 

答えて

8

書き込みfont-size:0;。このように:

#container{ 
    width:300px; 
    border:1px solid black; 
    font-size:0; 
} 

チェックこれはhttp://jsfiddle.net/y7L7q/1/

OR

このようなあなたのマークを書く:

<div id="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> 

チェックこのhttp://jsfiddle.net/y7L7q/2/

+5

設定font-size:0は適切な解決策ではありません。これらのボックス内のコンテンツのフォントサイズは0です。 – Abhidev

+0

あなたの要件に応じて内部のコンテンツのフォントサイズを与えることができますこれをチェックしてくださいhttp://jsfiddle.net/y7L7q/10/ – sandeep

+0

+1 Abhidevのコメントに。 – FelipeAls

8

それらはインラインブロックに設定されているので、これはそれらの間の空白がインライン空白として扱われ、したがって、そのようなとしてレンダリングされることを意味します。あなたは、HTMLに1行にすべてのdivを置くか、コメントで空白をラップすることにより、いずれかの方法でこの問題を解決することができます

<div class="box"></div><!-- 
--><div class="box"></div> 
+1

私の好みの解決策はブロック間のコメントです。私はHTML/CSSコードを読む将来のWeb開発者のために '<! - 空白をここに入れない - >'を追加する傾向があります – FelipeAls

0

代わりの表示:インラインブロック、floatを使用します。不要なスペースを削除するために残しました。これをチェックしてください。

http://jsfiddle.net/y7L7q/9/

また、そのフォントサイズの点に注意してください。0は、それが台無しにそれらのdiv内のコンテンツを意志として、私の意見では正しいアプローチではありません。

関連する問題