Pseudo Selector 활용하기

Written on May 1, 2022

css pseudo selector

HTML의 요소를 디자인 하기 위해 HTML 태그, 클래스, id 같은 선택자로 해당 요소를 선택하여 스타일을 선언해 주는 것이 CSS의 기본 문법이다. 선택자 { 속성1: 값1; 속성2: 값2; ... }
반면, document tree에 존재하지 않는, 단순 선택자로 표현할 수 없는 것을 선택하여 스타일링 해주는 것을 Pseudo Selector(가상 선택자)라고 하며, 가상 선택자에는 가상 클래스(Pseudo Class)가상 요소(Pseudo Element)가 존재한다.

가상 클래스(Pseudo Class)

가상 클래스는 요소 위에 마우스 포인터가 있거나, 해당 유형의 첫 번째 요소이거나 하는 특정 상태에 있는 요소를 선택하는 선택기로 코드의 일부에 클래스를 적용한 것처럼 유연하게 작동한다. 선택자 뒤에 :가상클래스를 붙이며, 기본적인 형태는 아래와 같다.

selector:pseudo-selector {
  property: value;
}

대표적인 가상 클래스의 예시는 아래와 같다.

selector 사용 예 내용
:link a:link 방문한 적이 없는 링크
:visited a:visited 방문한 적이 있는 링크
:hover a:hover 요소 위에 마우스 커서가 올려진 상태
:active a:active 요소를 마우스로 클릭한 상태
:focus input:focus 포커스를 받을 수 있는 요소(input 등)가 선택된 상태
:checked input[type=”radio”]:checked 라디오 체크박스나 옵션이 선택된 상태
:first-child li:first-child 부모의 첫 번째 자식인 요소
:only-child li:only-child 부모의 유일한 자식인 요소
:nth-child(n) tr:nth-child(2n) 부모의 짝수번째 자식 요소

가상 요소(Pseudo Element)

가상 요소는 선택자에 의해 선택된 요소의 특정 부분에 스타일을 적용한다. 예를들어, 문단의 첫 번째 글자에 다른 스타일을 적용하거나, 요소의 앞/뒤에 장식용 콘텐츠를 추가할 때 사용한다.
선택자 뒤에 ::가상클래스를 붙이며, 가상 클래스 처럼 콜론을 1개 :만 붙이는 형태는 CSS2에서 사용하던 deprecated된 문법이다. CSS3 부터 가상 요소는 콜론 2개를 붙여 가상 클래스와 구별할 수 있게 되었다.
기본적인 형태는 아래와 같다.

selector::pseudo-selector {
  property: value;
}
selector 내용
::before 선택한 요소의 첫 자식으로 의사 요소 생성
content를 꼭 넣어주어야 실행됨
::after 선택한 요소의 마지막 자식으로 의사 요소 생성
content를 꼭 넣어주어야 실행됨
::selection 사용자가 드래그로 선택한 블록에 스타일 지정
::first-letter 선택한 요소의 첫 번째 글자에 스타일 지정


이 밖에도 다양한 가상 클래스(Pseudo Class)가상 요소(Pseudo Element)가 있으며, 이러한 선택자를 잘 활용하면 인터랙티브한 웹을 구성할 수 있다.

👩🏻‍💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻‍♀️

in the process of becoming the best version of myself