*은 모든 요소를 선택한다.
* { }
주어진
tag명을 가진 요소를 선택한다.
div { }
.은 주어진class속성을 가진 모든 요소를 선택한다.
.classA { }
#은 주어진id속성을 가진 요소를 선택한다.
#only { }
[]은 주어진attribute의 존재 여부나 값에 따라 요소를 선택한다.
div[id="only"] { }
a[href="https://example.org"] { }
img[src] { }
,를 사용하여 복수개의 셀렉터를 연속하여 지정할 수 있다.
div, span, #main, .content { }
은 첫 번째 요소의 후손 중에 두 번째 요소와 일치하는 모든 요소를 선택한다.
header p { }
<header>
<p> <!-- Selected -->
<span>
<p></p> <!-- Selected -->
</span>
</p>
<p> <!-- Selected -->
<span>
<p></p> <!-- Selected -->
</span>
</p>
</header>
>은 첫 번째 요소의 자식 중에 두 번째 요소와 일치하는 모든 요소를 선택한다.
header > p { }
<header>
<p> <!-- Selected -->
<span>
<p></p>
</span>
</p>
<p> <!-- Selected -->
<span>
<p></p>
</span>
</p>
</header>
~은 같은 부모를 공유하면서 첫 번째 요소 뒤에 오는 두 번째 요소를 모두 선택한다.
section ~ p { }
<header>
<section></section>
<p></p> <!-- Selected -->
<p></p> <!-- Selected -->
<p></p> <!-- Selected -->
</header>
+은 같은 부모를 공유하면서 첫 번재 요소 바로 뒤에 오는 두 번째 요소를 선택한다.
section + p { }
<header>
<section></section>
<p></p> <!-- Selected -->
<p></p>
<p></p>
</header>
요소의 특정 상태에 따라 스타일을 정의할 때 사용된다.
:를 사용한다.
여기서 특정 상태란 예를 들어 다음과 같다.
- 마우스 포인터가 올라와 있을때
- 링크를 방문했을때와 방문하지 않았을때
- 포커스가 들어와있을때
div:hover { } /* div요소가 hover상태일때(마우스 포인터가 올라와 있을때) */
div:focus { } /* div요소가 focus상태일때(포커스가 들어와 있을때) */
a:link { } /* a요소가 link상태일때(방문하지 않은 링크일때) */
a:visited { } /* a요소가 visited상태일때(방문한 링크일때) */
a:active { } /* a요소가 active상태일때(활성화된(클릭된) 상태일때) */
input:checked + span { } /* input 요소가 checked상태일때(체크 상태일때) input요소 바로 뒤에 오는 span 요소를 선택*/
input:enabled { } /* input 요소가 enabled상태일때(사용 가능한 상태일때) */
input:disabled { } /* input 요소가 disabled상태일때(사용 불가능한 상태일때) */
div:first-child { } /* 셀렉터에 해당하는 요소 중 첫 번째 자식인 요소를 선택 */
div:last-child { } /* 셀렉터에 해당하는 요소 중 마지막 자식인 요소를 선택 */
div:nth-child(n) { } /* 셀렉터에 해당하는 요소 중 앞에서 n번째 자식인 요소를 선택 */
div:nth-last-child(n) { } /* 셀렉터에 해당하는 요소 중 뒤에서 n번째 자식인 요소를 선택 */
input:not([type=password]) { } /* input요소 중에서 type attribute의 값이 password가 아닌 요소를 선택*/
아래의 사이트들은 CSS Selector를 연습할 수 있는 곳이다.