疑似クラス
疑似クラスを使用すると、要素の特定の状態または位置を選択できます。 たとえば、 :hover
マウス ポインタが上にあるときに要素を選択し、 :focus
要素が選択されているかフォーカスされているときに要素を選択し、 :nth-child()
グループ内の特定の子要素を選択します。
例:
/* Select all links when hovered over and change the text color */
a:hover {
color: red;
}
/* Select the <input> element when it is focused and change the border */
input:focus {
border: 2px solid blue;
}
/* Select the second element in a group of <li> elements and change the text color */
li:nth-child(2) {
color: green;
}
擬似要素
疑似要素を使用すると、仮想要素を作成して既存の要素をカスタマイズできます。
たとえば、 要素の前後に要素を作成し、 ::before
要素 の 最初の行と最初の文字を選択します。 ::after
::first-line
::first-letter
例:
/* Add content before each <p> element and style it */
p::before {
content: ">> ";
font-weight: bold;
color: gray;
}
/* Style the first letter of <h1> element */
h1::first-letter {
font-size: 2em;
font-weight: bold;
color: red;
}
コンビネータ
コンビネータを使用すると、セレクタを組み合わせて、要素の関係に基づいて要素を選択できます。 たとえば、 の内部を element1 element2
選択し 、 の直接の子要素を選択し 、の 直後を 選択します 。 element2
element1
element1 > element2
element1
element1 + element2
element2
element1
例:
/* Select <span> elements inside an element with class "container" */
.container span {
color: purple;
}
/* Select <li> elements that are direct children of <ul> */
ul > li {
list-style-type: square;
color: blue;
}
属性セレクター
属性セレクターを使用すると、属性の値に基づいて要素を選択できます。 たとえば、 [attribute]
属性が の要素を選択し attribute
、 [attribute=value]
属性が に attribute
等しい要素を選択し value
、 [attribute^=value]
属性が で attribute
始まる要素を選択します value
。
例:
/* Select all elements with the attribute data-type */
[data-type] {
font-weight: bold;
color: orange;
}
/* Select all <a> elements with the href attribute starting with "https://" */
a[href^="https://"] {
color: blue;
text-decoration: underline;
}
:not()
セレクタ
セレクター を使用すると、特定のセレクターに一致しない要素を選択できます。 たとえば、 class を持たない要素を選択し 、 ID を持たない要素を選択します 。 :not()
:not(.class)
class
:not(#id)
id
例:
/* Select all <div> elements that do not have the class "hidden" */
div:not(.hidden) {
display: block;
background-color: lightgray;
}
/* Select all <input> elements that do not have the ID "email-input" */
input:not(#email-input) {
border: 1px solid gray;
}
これらの例は、CSS での高度な要素の選択を示しています。 これらのテクニックをカスタマイズおよび適用して、必要に応じて Web ページ上の要素のスタイルを設定したりカスタマイズしたりできます。