とほほのCSSネスティング入門

目次

CSSネスティングとは

サポート状況

サポート状況の詳細は下記を参照してください。

ネスティング

例えば、次のようなCSSがあります。

これまでのCSS
.parent .child {
  color: red;
}

これを次のように記述することができます。

CSSネスティング
.parent {
  .child {
    color: red;
  }
}

子セレクタ(>)隣接兄弟セレクタ(+)一般兄弟セレクタ(~) を使用する場合も次のように記述できます。

これまでのCSS
.parent > .child {
  color: red;
}
CSSネスティング
.parent {
  > .child {
    color: red;
  }
}

ネスティングセレクタ(&)

ネストされたCSSにタグ名を使用する場合は、下記の様にネスティングセレクタ & を記述する必要があります。

CSSネスティング
.parent {
  & p {           /* .parent p と解釈される */
    color: red;
  }
}

疑似クラス(:) や 疑似要素(::) を用いる場合もネスティングセレクタ(&)が必要です。

CSSネスティング
a {
  &:link { color: #00f; }       /* a:link */
  &:visited { color: #66f; }    /* a:visited */
  &:hover { color: #f00; }      /* a:hover */
}