HTML/CSS勉強ログ①|インライン要素とブロック要素について

HTML/CSSを勉強している中で、最初の頃によく分からなかったのが「インライン要素」と「ブロック要素」です。

なんとなく「インラインは横に並ぶ」「ブロックは縦に並ぶ」と覚えていましたが、実際にサイトを作ってみると、

「この要素だけ小さくしたい」
「この要素の幅を変えたい」

という場面が出てきました。

今回は、実際にサイトを作りながら理解したことをまとめます。

インライン要素とは?

インライン要素は、文章の一部分のように、文章の流れの中に入っていく要素です。

代表的なものには、

  • <a>
  • <span>

などがあります。

インライン要素は基本的に横方向に並んでいきます。

そのため、文章の一部分だけを装飾したい場合などに便利です。

spanタグを使って「ここだけ変える」

サイトを作っていると、

「¥5,000(税込)と表示したいけど、(税込)だけ少し小さくしたい」

というような場面があります。

そんなときに便利なのが<span>です。

spanはインライン要素なので、文章の一部分を違和感なく囲むことができます。

例えば、

<p>¥5,000<span>(税込)</span></p>

とします。

そしてCSSで、

p span {
    font-size: 10px;
}

と指定すれば、(税込)の部分だけ文字サイズを変更できます。

今回制作した架空サイトでも、商品の価格表示で同じ方法を使いました。

<p class="item-price">¥4,180<span>(税込)</span></p>

(税込)だけをspanで囲み、CSSで文字サイズを小さくしています。

実際にサイトを作ってみることで、「spanってこういうときに使うんだ!」と理解できました。

インライン要素はwidthを指定できない?

インライン要素について勉強していて、もう一つ疑問に思ったのが「width」です。

例えば、

span {
    width: 200px;
}

と指定しても、インライン要素では基本的にwidthやheightを指定して、その要素の大きさを自由に変えることはできません。

インライン要素は文章の流れの中にあるため、ブロック要素のように「この要素は幅200px、高さ100px」という形で大きさを指定する使い方には向いていません。

では、幅を指定したい場合はどうするのか?

そこで使えるのがdisplayです。

span {
    display: inline-block;
    width: 200px;
}

inline-blockにすると、インライン要素のように横に並びながら、widthやheightなどのサイズも指定できるようになります。

ブロック要素とは?

ブロック要素は、基本的に一つのまとまりとして扱われ、上から下へ並んでいきます。

そのため、複数のブロック要素を置くと、基本的には縦方向に並びます。

「要素を横に並べたい」という場合には、Flexboxなどを使ってレイアウトを調整します。

Flexboxとの関係

Flexboxを使うと、要素を横方向・縦方向に並べることができます。

例えば、

.container {
    display: flex;
}

とすると、Flexboxが適用され、子要素は基本的に横方向に並びます。

縦方向に並べたい場合は、

.container {
    display: flex;
    flex-direction: column;
}

とします。

最初は「なぜこれで横・縦が変わるんだろう?」と少し混乱しましたが、今はまず、

  • display: flex → Flexboxを使う
  • flex-direction: row → 横方向
  • flex-direction: column → 縦方向

と覚えています。

これからさらにFlexboxを使っていく中で、仕組みについても理解を深めていきたいです。

今回分かったこと

今回勉強して、インライン要素とブロック要素は、単純に「横」「縦」と覚えるだけではなく、それぞれ役割が違うことが分かりました。

インライン要素は、文章の一部分を指定したいときに便利。

ブロック要素は、一つのまとまりとしてレイアウトするときに使われる。

そして、要素の並び方を変更したい場合には、displayやFlexboxなどを使って調整する。

まだ「なぜこの指定でこう動くのか?」まで完全に理解できていない部分もありますが、実際にサイトを作りながら使うことで、少しずつイメージできるようになってきました。

今後も「とりあえずコードを覚える」だけではなく、実際に使いながら理解していきたいと思います。

今回覚えたこと

  • インライン要素は文章の流れの中で扱われる
  • <span>はインライン要素
  • インライン要素は基本的に横方向に並ぶ
  • インライン要素は基本的にwidthやheightを指定できない
  • display: inline-blockにするとサイズ指定ができる
  • ブロック要素は基本的に上から下へ並ぶ
  • display: flexでFlexboxを使える
  • flex-direction: rowは横方向
  • flex-direction: columnは縦方向

まだまだ勉強中ですが、実際にサイトを作りながら少しずつ理解していきたいと思います。

タイトルとURLをコピーしました