CSS ブロックレベル要素とインライン要素

CSSのブロックレベル要素とインライン要素の違いです。

目次

サンプル ブロックレベル要素
  インライン要素
  インライン要素+ブロックレベル要素

※html5の定義は廃止されましたが使用できます。

ブロックレベル要素

  • ブロックレベル要素を続けて記述した場合、画面上は縦(新しい行)になります
  • 横(左右)はできる限り伸びます。
  • widthとheightで幅と高さを指定できます。
  • marginは、上下左右効きます。

ブロックレベル要素のサンプルです。

<p>TEST1</p>
<p>TEST2</p>
<p>TEST3</p>

画面でみた場合以下になります。

主なブロックレベル要素

article footer ol
aside form p
blockquote h1からh6 pre
body header section
dd hr select
details html summary
dialog li sup
div main table
dl menu ul
dt nav

 

インライン要素

  • インライン要素を続けて記述した場合、画面上は横に並びます
  • widthとheightで幅と高さを指定できません。(img,inputは可能)
  • marginは、左右のみ効きます。(img,inputは上下も可能)

インライン要素のサンプルです。

<p>
  <span>aaa</span>
  <span>bbb</span>
  <span>ccc</span>
</p>

画面でみた場合以下になります。

主なインライン要素

a em strong
audio iframe sub
br img textarea
button input time
canvas label video
code object
embed span

 

インライン要素+ブロックレベル要素

display:inline-block
  • display:inline-blockと指定するとinlineと同じように画面上は横に並びかつ
    widthとheightで幅と高さを指定できます。(←inlineでは幅と高さの指定ができない)
  • marginも上下左右効きます。
  • 便利なのでよく使われるテクニックです。

インライン要素+ブロックレベル要素のサンプルです。

<style>
  .box1 div {
    display: inline-block;
    width: 100px;
    height: 50px;
    margin: 10px 10px 10px 10px;
    background-color: #f5deb3;
  }
</style>
<div class="box1">
  <div>abc</div>
  <div>abc</div>
  <div>abc</div>
</div>

3行目はdisplayにinline-blockを指定しています。
11~13行目は、ブロックレベル要素のdivタグが続いていますが
inline-blockの指定があるので横に並びます。
4~6行目のwidthとheightとmarginは反映されます。

以下は実行結果のイメージです。

関連の記事

CSS display 横に並べ幅と高さを指定(inline-block)

△上に戻る