本記事では、JavaScriptによるDOM操作で頻繁に使用される主要なCSSセレクタを一覧化し、基本的な構文と使用例を示します。
目次
最も基本的なセレクタ(4種)
要素セレクタ
要素セレクタは、特定のHTMLタグ名にスタイルを適用します。
タグ名 {
属性: 値;
}
p {
color: green;
font-weight: bold;
}
classセレクタ
classセレクタは、指定したclass名を持つ要素にスタイルを適用します。
classセレクタで指定するには、ドット「.」記号を使用します。
.class名 {
属性: 値;
}
.my-class {
color: green;
font-weight: bold;
}
IDセレクタ
IDセレクタは、指定したIDを持つ要素にスタイルを適用します。
IDセレクタで指定するには、シャープ「#」記号を使用します。
#id名 {
属性: 値;
}
#my-id {
color: green;
font-weight: bold;
}
複数要素を指定するセレクタ
複数の要素にスタイルを適用したい場合、カンマ「,」記号で区切って複数のセレクタを指定します。
セレクタ1, セレクタ2, セレクタ3[, ...] {
属性: 値;
}
/* pタグと、my-idというIDを持つ要素、my-classというclassを持つ要素にスタイルを適用 */
p, #my-id, .my-class {
color: green;
font-weight: bold;
}
親子関係セレクタ(5種)
親セレクタ
これはquerySelectorメソッドの引数ではなく、closestというメソッドを使用するJavaScript特有のセレクタです。
要素.closest( セレクタ )
/* closest-elemというIDを持つ要素に最も近い親 */
element.closest( '#closest-elem' )
子孫セレクタ
親セレクタの後ろに半角スペースを開け、その後に子孫セレクタを記述することで、親要素の下にある指定要素すべてにスタイルを適用します。
親要素 子孫要素 {
属性: 値;
}
/* my-idというIDを持つ要素の下にあるp要素すべて */
#my-id p {
color: green;
font-weight: bold;
}
子セレクタ
「親セレクタ > 子孫セレクタ」の形式で記述することにより、親要素の直接の子要素にスタイルを適用します。
親要素 > 子要素 {
属性: 値;
}
/* my-idというIDを持つ要素の直接の子要素としてのp */
#my-id > p {
color: green;
font-weight: bold;
}
隣接兄弟セレクタ
「セレクタ1 + セレクタ2」 の形式で記述することにより、セレクタ1の直後(階層の上下ではないことに注意)にあるセレクタ2にスタイルを適用します。
セレクタ1 + セレクタ2 {
属性: 値;
}
/* user-nameというIDを持つ要素の直後にあるli */
#user-name + li {
color: green;
}
兄弟セレクタ
「セレクタ1 ~ セレクタ2」 の形式で記述することにより、セレクタ1の後(階層の上下ではないことに注意)にあるすべてのセレクタ2にスタイルを適用します。
なお、「~」この記号は「チルダ」と読みます。
セレクタ1 ~ セレクタ2 {
属性: 値;
}
/* user-nameというIDを持つ要素の後にあるすべてのli */
#user-name ~ li {
color: green;
}
属性セレクタ
idやclassなどが付与されておらず、タグ名では指定範囲が広すぎる場合などに、HTMLタグの属性で指定できる「属性セレクタ」が便利です。
属性セレクタは、角カッコ「[]」を使用します。
セレクタ[属性名:値] {
属性: 値;
}
/* inputタグで、name属性が「user-name」 */
input[name="user-name"] {
color: green;
}
疑似クラス(2種)
特定の状態や位置にある要素にスタイルを適用するセレクタを「疑似クラス」と呼びます。
:hover
セレクタで指定した要素にマウスをホバー(マウスを乗せる)状態にしたタイミングでスタイルを適用します。
セレクタ:hover {
属性: 値;
}
/* my-idというIDを持つ要素にマウスをホバーした */
#my-button:hover {
color: green;
font-weight: bold;
}
:nth-child(n)
セレクタで指定した要素の「n番目の位置」にある子要素にスタイルを適用します。
なお、「n」は0番目からではなく1番目から数えます。
セレクタ:nth-child(n) {
属性: 値;
}
/* ulの中で2番目のli */
ul li:nth-child(2) {
color: green;
font-weight: bold;
}
最後に
本記事についての質問、誤りの指摘、ご意見ご感想などありましたら、ぜひコメント頂ければ幸いです。
最後までお読みいただき、ありがとうございました。

コメント