1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「diaplay inline-block+幅を%指定」で均等横並びにしても最後の要素が改行されてしまう問題

1
Posted at

はじめに

「diaplay inline-block+幅を%指定」で均等横並びをする際、
最後の要素だけ改行されてしまい困った経験をしたので、自分への備忘録も兼ねて、
だれかの参考になればと思い書かせていただきます。

概要

まずは、問題の状況を確認します。

index.html
<div class="content1">content1</div>
<div class="content2">content2</div>

style.css
div{
    display: inline-block;
    width: 50%;
}
.content1{
     background: blue;
}
.content2{
     background: red;
}

上記のコードをブラウザで開くと、下記の画像のように縦並びになってしまいます。

1.png

ちなみに、divタグをwidth: 49%;にすると、下記画像のように横並びになりますが、隙間が空いてしまいます。

2.png

幅いっぱいに要素を並べるにはどうすればよいのでしょうか。

解決法

原因は、ソースコード上でdivタグを改行して記述していたからでした。

index.html
<div class="content1">content1</div>
<div class="content2">content2</div> /* ここを改行しているのが原因 */

下記のようにdivタグを改行せずに記述し、ブラウザで確認してみると、

<div class="content1">content1</div><div class="content2">content2</div>

3.png

ちゃんと幅いっぱいに均等横並びができました。

なぜソースコード上の改行が原因なのか

html上の改行は、半角スペース一つ分として認識されてしまうからです。
それぞれのdivタブはちゃんと50%ずつの幅になっていますが、2つのdivタブの間に半角スペースが入ってしまい、画面全体の幅を超えてしまったため、最後の要素が改行されてしまうというのが、今回の問題の正体でした。

意外とめっちゃ基本的なことが原因でした。。
まだまだ勉強が足りないことを実感した経験でした。

おまけ①

ソースコード上で改行せずに記述すると、問題は解決できましたが、可読性悪いですよね。

<div class="content1">content1</div><div class="content2">content2</div>

可読性を良く、半角スペースが入らない解決方法をまとめてみます。

方法1 divタグの終了タグを改行する

<div class="content1">content1</div
><div class="content2">content2</div>

方法2 コメントを利用する


<div class="content1">content1</div><!-- 
--><div class="content2">content2</div>

少しは読みやすくなったのではないでしょうか。

おまけ②

今回は、2個の要素の均等横並びを前提にお話ししましたが、要素の個数が増える場合は、次のように幅指定してあげると、均等横並びができるようです。

要素の個数 width
2個 50%
3個 33.3333%
4個 25%
5個 20%
6個 16.6667%
7個 14.2857%
8個 12.5%
9個 11.1111%
10個 10%
11個 9.0909%
12個 8.3333%

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?