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