はじめに
- divとspanの使い分けがあやふやだったのでまとめました。
ブロックボックスとインラインボックスについて
-
<div>
: ブロックボックス -
<span>
: インラインボックス - MDN ドキュメントブロック要素
- MDN インライン要素
それぞれの違いは?
- 改行されるかどうか
- ブロックボックスは改行される
- インラインボックスは改行されない
- width、heightプロパティの挙動
- ブロックボックスは適用される
- インラインボックスは適用されない
- padding、margin、borderの挙動
- ブロックボックスは適用される
- インラインボックスはpadding、margin、borderがきたとき他の要素は無視される
html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="style.css" />
</head>
<body style="margin: 0">
<div>私はブロックです</div><div>私はブロックです</div><div>私はブロックです</div>
<hr />
<span>私はインラインです</span><span>私はインラインです</span><span>私はインラインです</span>
</body>
</html>
![]() |
---|
display
: 無理やりインラインボックスとブロックボックスを変更する
-
display
を使うことでインラインボックスとブロックボックスを変更する事ができる
ブロックボックスをインラインボックスへ変更する
css
div {
display: inline;
}
インラインボックスをブロックボックスへ変更する
css
span {
display: block;
}
inline-block
: インラインボックスとブロックボックス両方の性質を持つ
-
display: inline-block;
を使うことで両方の性質をもたせることができる
html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="style.css" />
</head>
<body style="margin: 0">
<div>ブロック内の<span>インライン</span>です。インラインの場合は、margin,padding,borderがきたときに他の要素のことを考えません。</div>
</body>
</html>
css
span{
background-color: yellow;
margin: 20px;
border: 1px solid black;
padding: 20px;
display: inline-block;
}
- 下の画像のようにインラインで表示されているが、padding、margin、borderが効いているのがわかる。
![]() |
---|