[ Pseudo-Elements/Class ]란 무엇인가요?
안녕하세요. Kim.YJ 입니다.
이번 포스팅은 CSS에서 유용하게 사용하는,
의사 요소와 의사 클래스에 대해,
알아 보겠습니다.
지금부터 자세히 설명 드릴테니,
천천히 이해하며 진행해 주시면 감사하겠습니다.
[ 의사 요소(pseudo-element) 란? ]
의사 요소(pseudo-element)는 해당 HTML 요소의 특정 부분만을 선택할 때 사용합니다.
문법
선택자::의사요소이름 {속성: 속성값;}
대표적인 요소
| 선택자 | 설명 |
|---|---|
::first-letter |
텍스트의 첫 글자만 선택. |
::first-line |
텍스트의 첫 라인만 선택. |
::before |
특정 요소의 바로 앞에 요소 삽입. |
::after |
특정 요소의 바로 뒤에 요소 삽입. |
::selection |
사용자가 선택한 부분만 선택. |
예제
<style>
p::first-letter { color: red;}
</style>
[ 의사 클래스(pseudo-class) 란? ]
CSS에서 의사 클래스(pseudo-class)는 선택하고자 하는 HTML 요소의 특별한 ‘상태(state)’를 명시할 때 사용합니다.
문법
선택자:의사클래스이름 {속성: 속성값;}
대표적인 요소
| 선택자 | 설명 |
|---|---|
:link |
페이지를 방문하지 않은 상태를 모두 선택. |
:visited |
링크를 통해서 연결된 페이지를 방문한 상태 선택. |
:hover |
마우스 커서가 링크 위에 올라가 있는 상태 선택. |
:active |
클릭하고 있는 상태를 모두 선택함. |
:focus |
초점이 맞춰진 input 요소를 모두 선택함. |
:checked |
체크된(checked) 상태의 input 요소를 모두 선택. |
:enabled |
사용할 수 있는 input 요소를 모두 선택. |
:disabled |
사용할 수 없는 input 요소를 모두 선택. |
:target |
활성화된 target 요소를 모두 선택. |
:in-range |
특정 범위 내의 값을 가지는 input 요소를 모두 선택. |
:out-of-range |
특정 범위를 벗어나는 값을 가지는 input 요소를 모두 선택. |
:read-only |
readonly 속성을 가지는 input 요소를 모두 선택. |
:read-write |
readonly 속성을 가지지 않는 input 요소를 모두 선택. |
:required |
required 속성을 가지는 input 요소를 모두 선택. |
:optional |
required 속성을 가지지 않는 input 요소를 모두 선택. |
:valid |
유효한 값을 가지는 input 요소를 모두 선택. |
:invalid |
유효하지 않은 값을 가지는 input 요소를 모두 선택. |
:first-child |
요소 중에서 첫 번째에 위치하는 자식(child) 요소를 모두 선택. |
:last-child |
요소 중에서 마지막에 위치하는 자식(child) 요소를 모두 선택. |
:nth-child |
요소 중에서 앞에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택. |
:nth-last-child |
요소 중에서 뒤에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택. |
:first-of-type |
요소 중에서 첫 번째로 등장하는 특정 요소를 모두 선택. |
:last-of-type |
요소 중에서 마지막으로 등장하는 특정 요소를 모두 선택. |
:nth-of-type |
요소 중에서 n번째로 등장하는 특정 요소를 모두 선택. |
:nth-last-of-type |
요소 중에서 뒤에서부터 n번째로 등장하는 특정 요소를 모두 선택. |
:only-child |
요소를 단 하나만 가지는 모든 요소의 자식(child) 요소를 선택. |
:only-of-type |
특정 요소 단 하나만 가지는 모든 요소의 자식(child) 요소를 선택. |
:empty |
아무런 자식(child) 요소도 가지지 않는 요소를 모두 선택. |
:root |
문서의 root 요소를 선택. |
:not |
모든 선택자와 함께 사용할 수 있으며, 해당 선택자를 반대로 적용. |
:lang |
특정 요소를 언어 설정에 따라 다르게 표현할 때에 사용. |
예제
<style>
p:hover { border: 1px solid #000;}
</style>
[ 의사 요소와 의사 클래스의 차이점 ]
의사 요소는 요소의 특정 부분에 스타일을 적용하는 반면,
의사클래스는 요소의 상태나 조건을 기반으로 스타일을 변경한다는 점에서 차이가 있습니다.
의사 클래스는 “상태/조건”을 기준으로 동작하고, 의사요소는 “특정부분”을 기준으로 동작한다고 이해하면 됩니다.
의사 요소와 의사 클래스에 대해 포스팅을 하였습니다.
도움이 되는 포스팅이었길 바랍니다.
다음 포스팅은 더 유익한 정보로 찾아뵙겠습니다.
감사합니다!