【CSS】単純、複合、複雑セレクターについて解説!【初心者向け】
しゅーた(@chibasyuta)です!
この記事ではCSSの「単純、複合、複雑セレクター」について解説します。
このような方が対象です。
この記事の内容!
- そもそもセレクターとは何か?
- 「単純セレクター」とは何か?
- 「複合セレクター」とは何か?
- 「複雑セレクター」とは何か?
それでは内容へ入ります!
そもそもCSSの「セレクター」とは何か?
CSSの「セレクター」とは「どの要素にスタイルを当てるか?」を指定する箇所のことを指します。
「単純、複合、複雑セレクター」とは何か?
セレクターの種類!
- 単純セレクター
- 複合セレクター
- 複雑セレクター
CSSのセレクターはこれら3つに分類することができます。
「単純セレクター」とは何か?
h2 {
color: skyblue;
}
.foo {
color: skyblue;
}
#foo {
color: skyblue;
}
[title] {
color: skyblue;
}
「単純セレクター」とは「要素型セレクター」「classセレクター」「idセレクター」「属性セレクター」などの成分が1つしかないものを指します。
ここは区別が難しいのですが、単純な1つの要素からなるセレクターを指します。
区別に関しては、他のセレクターについても見てもらえたらと思います!
「複合セレクター」とは何か?
h2.foo {
color: skyblue;
}
h2.foo.active {
color: skyblue;
}
h2[title] {
color: skyblue;
}
h2[title][data-category] {
color: skyblue;
}
「複合セレクター」とは「要素とクラス名」「クラス名2つ」「要素と属性」などの2つ以上の成分からなるセレクターのことを指します。
ここで重要なのは、それらは半角空白を空けずに、くっつけて書かれている必要があることです。
半角空白は子孫結合子と呼ばれ、それが含まれるセレクターは「複雑セレクター」に分類されます。
「複雑セレクター」とは何か?
.foo h3 {
color: skyblue;
}
.foo > h3 {
color: skyblue;
}
.foo + h3 {
color: skyblue;
}
.foo ~ h3 {
color: skyblue;
}
「複雑セレクター」とは「結合子」が使われいるセレクターのことを指します。
CSSのセレクターの結合子!
- 子孫結合子「” “」半角空白
- 子結合子!「>」
- 次兄弟結合子!「+」
- 後続兄弟結合子!「~」
CSSでは、これらの結合子を用いて、独立して有効なセレクター同士を繋げて、スタイルが当たる範囲を狭めることができます。
【CSS】セレクターの「子孫結合子」について解説!【descendant combinator】
【CSS】セレクターの「子結合子」について解説!【child combinator】
【CSS】「次兄弟結合子」について丁寧に解説!【隣接兄弟結合子】
【CSS】「後続兄弟結合子」について解説!【subsequent sibling combinator】
参考リンク。
仕様書。
https://drafts.csswg.org/selectors/
MDN。
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_selectors/Selector_structure
あわせて読みたい記事。
大学生が夏休みにweb制作で13万円稼ぐまでにやったこと。【経験談】
まとめ
CSSの「セレクター」とは「どの要素にスタイルを当てるか?」を指定する箇所のことを指す。
CSSのセレクターは3種類に大別することができる。
それは下記の通り。
セレクターの種類!
- 単純セレクター
- 複合セレクター
- 複雑セレクター
そしてCSSに用意されている結合子は下記の通り。
CSSのセレクターの結合子!
- 子孫結合子「” “」半角空白
- 子結合子!「>」
- 次兄弟結合子!「+」
- 後続兄弟結合子!「~」
この記事が気に入った方は僕のTwitter(@chibasyuta)のフォローもお願いします!
それではこんな感じでこの記事を終わります!
ではまた!