gorogoronyan FC2

CSS display: inline, block, inline-block など

概略

HTML の表示に使われるタグ (要素) は表示の仕方によって、 主にインライン (inline)インラインブロック (inline-block)ブロック (block) などの種類があります。

HTML4 時代までタグ名ごとに「a タグはインライン要素、 img タグはインラインブロック要素」 のように分類していました。 現在では CSS の display の設定で、例えば a タグ をブロック要素やインラインブロック要素にすることができます。 HTML5 以降では「a タグは初期設定がインライン要素になっている (変更もできる)」ぐらいの感覚で眺めてください。

HTML のタグ (要素) と CSS display の種類
inline inline-block block
主なタグ テキスト, a, span, br, b, i など img, textarea など div, p, ul系, dl系, h1系, figure, pre など
フロー 左から右へ、右端まで行ったら下 (次の行) へ。 inline と同じ。 上から下へ (左右に並ばない)。
要素の大きさ ×: width, height はない。設定しても反映されない。 ○: width, height を設定できる。 ○: width, height を設定できる。
padding ○: 確保される ○: 確保される ○: 確保される
margin ○: 左右のマージンは確保される。
×: 上下のマージンは確保されない。
○: 確保される ○: 確保される
(補足) display には上以外の値もあります。

  例:
  table-row, table-cell など : table の tr タグ, td タグ
  list-item : li タグ (block より限定された値)
  flex
  grid
  など

  MDN: display

a タグや img タグもブロック要素にできます

初期設定がインライン (a タグなど) やインラインブロック (img タグなど) の要素も CSS で display: block; を設定するとブロック要素になります。 div タグと同じ感覚で扱えます。
a タグを block 要素にする

例:
.ul1 li a {
	display: block;   /* class="ul1" 内の a タグをブロック要素にする。 */
}

.div1 img {
	display: block;   /* class="div1" 内の img タグをブロック要素にする。 */
}
TestHTML_a_inline_block01.html
インライン要素、 インラインブロック要素、 ブロック要素の違い。
CSS display: inline,block など
CSS: 要素の配置: ブロック要素

また、a タグや img タグを position: absolute; や position: fixed; や float で配置すると暗黙でブロック要素になります。
インライン要素が暗黙でブロック要素になる場合

コンテンツカテゴリー

インライン要素、ブロック要素という用語は昔風の呼び方で、 これらとは別に現在では コンテンツカテゴリー の視点で分類する話もあります。

インライン要素

インライン要素は CSS の初期設定で display: inline; になっている要素です。文章の中で使用するタグがインライン要素です。

インラインブロック要素

img タグや button タグや textarea タグは CSS の初期設定が display: inline-block; になっています。 インライン (display: inline;) との大きな違いはインラインブロックでは要素の大きさ (幅: width、高さ: height) を設定することができます。

                          要素の大きさ (width, height) の設定
display: inline;          設定できない。
display: inline-block;    設定できる。
TestHTML_img_text01.html
img タグ (インラインブロック) とテキスト (インライン) を混在させたサンプル。
img タグ: 画像を並べる
TestHTML_button01.html
button タグの基本的なサンプル。 button タグも inline-block の要素です。 扱い方は img タグと同じになります。
button タグ

textarea タグも inline-block です

複数の textarea タグを並べると img タグと同じように並びます。 ブロック要素の div タグなどと並べ方が異なります。

TestHTML_textarea_inline_block01.html
textarea を複数並べるサンプル。
textarea タグ

インライン要素のタグも inline-block で大きさを設定できます

span タグや a タグや b タグなどのインライン要素のタグは、 そのままでは大きさを持たせることができません。 width, height を設定しても反映されません。

インライン要素のタグを display: inline-block; にすると CSS で width, height を設定することができます。 img タグと同じ感覚で扱えるようになります。
インライン要素をインラインブロック要素にする

ブロック要素

ブロック要素は CSS で display: block; が設定された要素です。 ページのレイアウトなど大きな区画を扱う要素です。 main タグや p タグは初期設定がブロック要素になっています。

関連

inserted by FC2 system