夢は小さいほどいいと思っているんです。本気になれるから。

夢を持つことが大事なんじゃなく、本気になるのが大事。(糸井重里)

効率的なCSS設計の基本「基本、HTMLの要素名にスタイルを指定しない」

CSSは、簡単に書けるメリットがある一方、非常に破綻しやすいデメリットもあります。
保守性が高まる、CSS設計の代表例をメモします。

HTMLの要素名にスタイルを指定しない

リリース後や改修後も、後から部分的な変更や、ブラウザやサイトの仕様変更によってHTMLのマークアップが変更される場合があります。
そんな時、HTMLの要素名にスタイルを指定していると、CSSファイルも修正しなくてはいけません。

例えば、こんなコードがあるとして

See the Pen oLPmaq by r.shimizu (@r_shimizu) on CodePen.

サンプルタイトルより、重要なタイトルがあるとすると、サンプルタイトルはh2に格下げする必要があります。その場合、CSSセレクタも変更しなくてはいけません。

See the Pen YWOBRj by r.shimizu (@r_shimizu) on CodePen.

でも、HTMLの要素名ではなく、クラスに対してスタイルを指定していればHTMLに多少の変更があっても、CSSがその影響を受けにくくなるので保守性が上がります。

See the Pen OXodYZ by r.shimizu (@r_shimizu) on CodePen.

See the Pen YWOBRj by r.shimizu (@r_shimizu) on CodePen.

ただ、a要素、input要素、textarea要素など「その要素でないと機能が成り立たない」場合は要素の種類が変わる可能性が低いため、要素名に直接スタイルを指定するデメリットが薄くなります。