要素を横並びに表示させたいときに「inline-block」を使ったりしますが、その際に謎の隙間ができてしまうことがあります。そのような隙間を消す対処法を紹介します。

隙間ができる原因

marginやpaddingを指定していないのにも関わらず、要素間に余白ができてしまう原因には、HTMLのソースコードの書き方にあります。サイトの管理・運用上、ソースコードはなるべく見やすく分かりやすいようにしておきたいので適宜、改行を入れたりして記述するのが一般的です。

<div class="box">
  <div class="inner-box"></div>
  <div class="inner-box"></div>
  <div class="inner-box"></div>
</div>

しかし、インライン要素の場合、この改行が余計な隙間を作ってしまう原因になってしまいます。

インライン要素にすると隙間ができる

そのことから、改行を入れない形でソースコードを書いていけば、余白を消すことができます。ただ、この方法ではやはりソースコードが見ずらくなってしまいます。
そこで、CSSである指定をすることで無駄な余白を消しつつ、ソースコードは改行を入れたまま見やすさを保つ方法です。

font-sizeプロパティで解決する

親要素に対して、「font-size:0;」を指定することで、余計な隙間をなくすことができます。そして、子要素に対してフォントサイズをもう一度、指定し直してあげます。

.box {
  font-size: 0;
}
.inner-box {
  font-size: 16px;
}

これで、隙間なく要素を横並びに表示することができます。

font-sizeプロパティでインライン要素の隙間を消す

要素の上下にも隙間ができてしまう場合には、子要素に「vertical-align」を指定することで解決できます。値は「top」または「bottom」を指定します。

以上が、inline-blockを指定した際にできる隙間を消す方法となります。

おすすめの記事