【CSS】 プラス「+」記号の意味と使い方

CSS(またはSass)における「」(プラス)記号の意味と使い方などについて解説してみます。

CSSにおけるプラス(+)記号とは何か?

プラス(+)記号は「隣接セレクタ」と呼ばれるセレクタの一つです。

その名の通り、「とある要素に隣り合っている要素」に対してスタイルを指定したい時に使います。ただし「同じ親要素内かつ同じ階層(同じ兄弟レベル)で弟要素のみ」であることが条件です

つまりいくら同じ親要素内であったとしても、隣り合う要素が兄要素(とある要素よりも前に書かれた要素)の場合はスタイルを効かせることはできないということです。

プラス(+)記号の使い方

プラス記号が有効に使える一つの実例がli要素です。

以下にサンプルを載せます。

See the Pen plus-selector by Takuma (@takushin0202) on CodePen.

HTML

<ul class="fruits">
  <li>りんご</li>
  <li>みかん</li>
  <li>ぶどう</li>
  <li>ドラゴンフルーツ</li>
</ul>

CSS(& Sass)

/* CSSの場合 */
.fruits li + li {
  color: red;
}

/* Sassの場合 */
fruits {
  & + & {
  color: red;
  }
}

.fruitsクラスの中のli要素に隣接するli要素(つまり2番目のli要素)の文字色が赤色に変わっていますが、面白いのは2番目のみだけでなく、3番目も、そして4番目のli要素も色が変わっています。

これは「同じ階層同士で隣り合っている」という条件を満たし続けているからです。なので次のような場合は途中でスタイルは適用されなくなります。

See the Pen Untitled by Takuma (@takushin0202) on CodePen.

li要素が続く途中にspan要素が入っています。

このspan要素が同じ階層に現れたことで「同じ階層(同じ兄弟レベル)で隣り合っている」という条件を満たさなくなったため、最後のバナナは同じ階層のli要素にも関わらずスタイルは適用されなくなります。

実務ではヘッダーのナビメニューの横並びで2番目以降のli要素(ないしはa要素)にmargin-leftなんかを効かせたい場合に使える手だったりしますので、ぜひ参考にしてみて下さい。

コメント

タイトルとURLをコピーしました