Sponsored Link
htmlタグにはインライン要素とブロック要素というものがあります。
各セクションのタグの役割を一通り理解したら、次はインライン要素とブロック要素のことを知りましょう。
この記事の目次
インライン要素は「横に並んでいくもの」
インライン要素は、主にブロックレベル要素の内容として用いられる要素で、文章の一部として扱われます。 例えば、<p>要素の中の<strong>要素のように、段落のなかの一部を強調するような使われ方をする要素です。 一般的なブラウザでは前後に改行が入らず、文章の一部として表示されます。
インライン要素には、以下のものがあります。 <a>、<abbr>、<acronym>、<b>、<basefont>、<bdo>、<big>、<br>、<cite>、<code>、<dfn>、
<em>、<font>、<i>、<img>、<input>、<kbd>、<label>、<q>、<s>、<samp>、<select>、
<small>、<span>、<strike>、<strong>、<sub>、<sup>、<textarea>、<tt>、<u>、<var>
記述したものから順番に横に並んでいくのがインライン要素です。
例えば、「divタグ」の内側にインライン要素である「aタグ」を一つ記述し、
続けてもう一つ「aタグ」を追加すると、二つ目の「aタグ」が回り込んで横に並びます。
See the Pen インライン要素 by 脇坂基徳 (@rvyolqet-the-vuer) on CodePen.
aタグだけではなく、以前紹介したimgタグや、
paizaラーニングの演習課題に出てきたstrongタグなどはインライン要素に該当します。
ブロック要素は「縦に積まれていくもの」
ブロックレベル要素は、見出し・段落・表など、文書を構成する基本となる要素で、一つのブロック(かたまり)として認識されます。 ブラウザでの表示も一つのかたまりとして扱われることが多く、一般的なブラウザでは前後に改行が入ります。 ブロックレベル要素には、以下のものがあります。 <address>、<blockquote>、<center>、<div>、<dl>、<fieldset>、<form>、<h1>-<h6>、
<hr>、<noframes>、<noscript>、<ol>、<p>、<pre>、<table>、<ul>
ブロック要素は、横幅100%でブロックが生成されるhtmlタグのことです。
例えば「divタグ」を記述し、その下にさらにもう一つ「divタグ」をコーディングして追加すると、
先ほど「divタグ」によって生成されたブロックの横に回り込むことなく、下にもう一つ横幅100%のブロックが生成されます。
つまり、記述したものから上から順に縦に積まれていくのがブロック要素になります。
以前紹介したdivタグやhタグやpタグ、そしてheaderからfooterはブロック要素に該当します。
See the Pen レイアウト練習(ブロック要素→インライン要素) by 脇坂基徳 (@rvyolqet-the-vuer) on CodePen.
インライン要素とブロック要素は何が違う??
これを噛み砕いて説明すると以下のようになります。
ブロック要素 | インライン要素 | |
---|---|---|
高さ (height) |
保持される | 保持されない |
横幅 (width) |
指定しない限り100% | 指定してもしなくてもauto |
以下の図を見てみましょう。
❶ではhtmlのマークアップを行い、その結果❷がモニターに表示されます。
どこに何が適用されてどのようになっているかをわかりやすくするため、❸には現在このテキストに、どのタグがどこに適用されているのか?を表しています。
インライン要素とブロック要素は相互に変更が可能
実は、インライン要素とブロック要素は相互に変更することができます。
以下のコードを見てみてください。
See the Pen ブロック要素←→インライン要素 by 脇坂基徳 (@rvyolqet-the-vuer) on CodePen.
この方法では、本来インライン要素であるaタグのうち「.block」と名前をつけたものに「display: block;」を指定していますが、インライン要素であっても「display: block;」を指定すればブロック要素に変更することができます。
また、本来ブロック要素であるpタグのうち「.inline」と名前をつけたもの対して「display: inline;」を指定すれば、ブロック要素であっても、「display: inline;」を指定すればインライン要素に変更することができます。
実際にコーディングしないと違いが理解しにくいブロック要素とインライン要素
とまぁここまで説明しましたが、違いを理解するのは難しいですよね。
実際説明する側も積み重ねた経験によって感覚で理解しているものであるため、
正直なところ、いざ誰かに説明するとなると、「経験を増やして感覚で理解して」としか教えてあげられないものではあります。
少しずつコーディングを行っていきますので、その中で慣れてなんとなく「こういうものかな」と感じてもらえたらいいなと思います。