OOCSS - CSS

  • 作成日:
  • 最終更新日:2026/02/04

OOCSS

OOCSSは、「 Object Oritented CSS(オブジェクト指向CSS) 」の略です。

具体的な手法として以下の2つがあります。

  • ストラクチャーとスキンの分離
  • コンテナとコンテンツの分離

ストラクチャーとスキンの分離

「 構造 」にあたるのがストラクチャー、「 デザイン細部のこだわり(あしらい) 」にあたるのがスキンです。

ストラクチャーにあたるプロパティには以下のようなものが該当します。

  • width
  • height
  • padding
  • margin

スキンにあたるプロパティには以下のようなものがあります。

  • color
  • font
  • background
  • box-shadow
  • text-shadow

「 ストラクチャーとスキンの分離 」についての簡単なサンプルです。

HTML

<main id="main">
  <button class="btn-general">標準ボタン</button>
  <button class="btn-warning">キャンセル</button>
</main>

CSS

#main .btn-general {
  display: inline-block;
  width: 300px;
  background-color: #00d3e2;
  color: #fff;
}
#main .btn-warning {
  display: inline-block;
  width: 300px;
  background-color: #f100c9;
  color: #fff;
}

上記を「 ストラクチャーとスキンの分離 」に従って書き直すと以下のようになります。

HTML

<main id="main">
    <button class="btn general">標準ボタン</button>
  <button class="btn warning">キャンセル</button>
</main>

CSS

/* ストラクチャー */
#main .btn {
  display: inline-block;
  width: 300px;
}

/* スキン */
#main .general {
  background-color: #00d3e2;
  color: #fff;
}
#main .warning {
  background-color: #f100c9;
  color: #fff;
}

コンテナとコンテンツの分離

「 ストラクチャーとスキンの分離 」の CSS では、「 main 」の外で使おうとしても使うことがで来ません。

以下の HTML では div 内の button には CSS が適用されません。

HTML

<main id="main">
  <button class="btn general">標準ボタン</button>
  <button class="btn warning">キャンセル</button>
</main>

<div>
  <button class="btn general">標準ボタン</button>
</div>

以下のように CSS を変更すれば div 内の button にも CSS が適用されます。

CSS

/* ストラクチャー */
.btn {
  display: inline-block;
  width: 300px;
}

/* スキン */
.general {
  background-color: #00d3e2;
  color: #fff;
}
.warning {
  background-color: #f100c9;
  color: #fff;
}