CSS 速習チュートリアル

CSS display: inline-block

1. display: inline-block プロパティ

display: inline-block は、inlineblock の両方の特性を併せ持つ値を指定するプロパティです。

display: inline と比較した際の大きな違いは、要素の width(幅)と height(高さ)を設定できる点にあります。

また、display: inline-block を使用すると、上下の margin(マージン)や padding(パディング)が適切に保持されます。これに対し、display: inline ではこれらが正しく適用されない場合があります。

display: block と比較した際の大きな違いは、要素の後に改行が挿入されない点です。そのため、要素を隣り合わせに並べることが可能になります。

2. inline、inline-block、block の比較

以下の例では、display: inlinedisplay: inline-block、および display: block の挙動の違いを示しています。

<!DOCTYPE html>
<html>
<head>
<style>
span.a {
  display: inline; /* デフォルト値 */
  width: 100px;
  height: 100px;
  padding: 5px;
  border: 1px solid blue;  
  background-color: yellow; 
}

span.b {
  display: inline-block;
  width: 100px;
  height: 100px;
  padding: 5px;
  border: 1px solid blue;    
  background-color: yellow; 
}

span.c {
  display: block;
  width: 100px;
  height: 100px;
  padding: 5px;
  border: 1px solid blue;    
  background-color: yellow; 
}
</style>
</head>
<body>

<h1>display プロパティの比較</h1>

<h2>display: inline</h2>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. <span class="a">ここにインライン要素があります。</span> Vestibulum consequat scelerisque elit sit amet consequat.</div>

<h2>display: inline-block</h2>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. <span class="b">ここにインラインブロック要素があります。</span> Vestibulum consequat scelerisque elit sit amet consequat.</div>

<h2>display: block</h2>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. <span class="c">ここにブロック要素があります。</span> Vestibulum consequat scelerisque elit sit amet consequat.</div>

</body>
</html>

3. inline-block を使用したナビゲーションリンク

display: inline-block の代表的な活用例の一つに、水平方向のナビゲーションメニューの作成があります。

デフォルトでは、リストアイテム(<li>)は垂直に並びますが、以下の例では display: inline-block を使用して水平に並べています。

<!DOCTYPE html>
<html>
<head>
<style>
.nav {
  background-color: yellow; 
  list-style-type: none;
  text-align: center;
  margin: 0;
  padding: 0;
}

.nav li {
  display: inline-block;
  font-size: 20px;
  padding: 20px;
}
</style>
</head>
<body>

<h1>inline-block を使ったナビゲーションメニュー</h1>

<ul class="nav">
  <li><a href="#home">ホーム</a></li>
  <li><a href="#about">私たちについて</a></li>
  <li><a href="#clients">クライアント</a></li>
  <li><a href="#contact">コンタクト</a></li>
</ul>

</body>
</html>

4. プロパティのまとめ

説明
inline要素をインラインとして表示します。幅と高さの設定は無視されます。
block要素をブロックレベルとして表示します。常に新しい行から始まり、利用可能な全幅を占有します。
inline-block要素をインラインとして配置しつつ、ブロック要素のように幅と高さを指定できるようにします。