[CSS]inline-blockで横に並べたら隙間ができた時の対処法
グローバルナビゲーションなどで、リストを横並びにしたいとき、floatを使わずにdisplay:inline-blockで並べたいとする。
いざコーディングすると、隙間ができてしまうことがあります。
HTML
<div class="box">aaaaaaa</div> <div class="box">aaaaaaa</div> <div class="box">aaaaaaa</div>
CSS
.box{
border:1px black solid;
width:100px;
height:100px;
padding:10px;
background:#eaeaea;
display:inline-block;
}
[余計な隙間ができる 画像]
この隙間は、改行部分が空白として認識してしまっているからなんですね。
どうしてもinline-blockを使わなければならないならば、htmlを修正すれば直るパターンがいくつかあります。
パターン1 改行をなくす
<div class="box">aaaaaaa</div><div class="box">aaaaaaa</div><div class="box">aaaaaaa</div>
パターン2 タグ間の改行をなくす
<div class="box">aaaaaaa</div ><div class="box">aaaaaaa</div ><div class="box">aaaaaaa</div>
パターン3 コメントを使う
<div class="box">aaaaaaa</div><!-- --><div class="box">aaaaaaa</div><!-- --><div class="box">aaaaaaa</div>
パターン4 親要素の文字間を一旦詰める
親要素の文字間をletter-spacingで-0.4em詰めてから、子要素の文字間を元に戻す。
#parent{ letter-spacing:-0.4em; }
.box{ letter-spacing:normal; ... }