2
1

ブロック要素とインライン要素の違いと使い分け方:超基本編

Last updated at Posted at 2024-07-11

はじめに

ブロック要素とインライン要素。
CSSを書いていて初学者が沼るポイントの一つではないでしょうか。
私はこの要素の違いがよく分からず、毎回なんとなくやっていていました。
なんとなくなので、入れ込んでは、できない。あれ、今回はいけた。と、効率が悪かったので今回まとめることにしました。

? : ブッロク要素ってなに

「常に新しい行から始まり、幅が親コンテナの全体を占める要素」

◼︎ブロック要素の特徴
・新しい行から始まる: ブロック要素は他の要素とは別の行に配置されます。
・幅を全て占める: デフォルトでは、親要素の幅全体を占めます。
・高さと幅を設定可能: width や height プロパティを使って明示的に高さや幅を設定できます。

◾︎ブロック要素はこれ ⬇️

<div>
<p>
<h1> ~ <h6>
<ul> と <ol>
<li>
<section>
<article>
<header>
<footer>

レイアウトの主要な構造を作るために使われる。

? : インライン要素とは

「他のインライン要素と同じ行に並び、内容に応じた幅を持つ要素」

◼︎インライン要素の特徴
・同じ行に並ぶ: 他のインライン要素と同じ行に並んで表示されます。
・幅が内容に応じて決まる: 親要素の幅全体を占めるのではなく、その内容に応じた幅を持ちます。
・高さと幅を設定できない: width や height プロパティが無視されます。

◾︎インライン要素はこれ ⬇️

「上記のブロック要素以外」
(少し雑かもしれませんが、覚えやすくするために手っ取り早くいきます。)
具体例として、

<span>
<a>
<img>
<em>
<strong>
<i>
<b>
<u>
<code>
<label>
<abbr>
<cite>

ページの主要な構造ではなく、内容の一部を細かく装飾するために使用される。

? : インライン要素の大きさ調整はどうやってするん

インライン要素は、
"高さと幅を設定できない: width や height プロパティが無視される”
インライン要素こそ、高さと幅設定をしたい。

→【結論】paddingとmarginを駆使する。

スクリーンショット 2024-07-11 14.03.43.png

1. padding
インライン要素の周囲にパディングを設定することで、コンテンツの周囲に空白を追加できる。
パディングはコンテンツの外側に適用されるため、要素自体のサイズには影響しませんが、見た目のサイズを調整するのに役立つ。

2. margin
インライン要素の周囲にマージンを設定することもできる。マージンは要素とその周囲の要素との間のスペースを指定するが、インライン要素自体のサイズには影響しない。

3. インライン要素の外側にブロック要素を配置する(奥の手?)
インライン要素のサイズ調整が難しい場合、そのインライン要素を含むブロック要素を使用して、ブロック要素のサイズを調整する方法もある。この場合、ブロック要素にはサイズ(高さ・幅)を指定できるため、その中にインライン要素を配置し、必要に応じてサイズやスタイルを調整することができる。

まとめ

ブロック要素とインライン要素を使い分けることで、効果的なページレイアウトを作成することができる。

・ブロック要素は、
 L ページの大きな構造を作るのに使われ
 L 新しい行に表示され
 L 幅全体を占める。
 例:<div>, <header>, <section>

・インライン要素は、
 L テキストの一部や小さな部分の装飾に使われ
 L 同じ行に表示され
 L 内容に応じた幅を持つ。
 例:<span>, <a>, <em>

おわりに

インライン要素を制するものがCSSを制する。
インライン要素は種類がありすぎてよく分からんので、ブロック要素以外と覚えるといいというのは新しい発見でした。
そして、今までインライン要素にheight,widthをあてては、なんで反映されないんだろう。と首を捻っていた原因が判明してすっきりしました。
基本のキを理解することの大切さを改めて感じました。

と、思っていたら、インライン要素をブロック要素にするには、

display:block;
display: inline-block;
float: left; もしくは float: right;

などの3つの選択肢があることを忘れてました。なんなら上記3つの方がよく使うやり方、、。
今度は、上記について深掘りしたいと思います。
そして、インラインブロック要素という要素もありました。
いろんな要素がありますね、一つずついきます。
と思ったら、インラインブロック要素というHTMLタグ(<>)は存在せず、CSSのプロパティの一つなんですね、なんで要素っていうんだろう。ややこしい。

2
1
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
2
1