HTML 코드에는 없지만, 브라우저가 알고 있는 특별한 상태나 순서를 디자인할 때 사용합니다.
| 가상 클래스 |
설명 및 활용 |
| :hover |
마우스 포인터가 요소 위에 올라가 있을 때 적용됩니다. (주로 버튼이나 링크에 사용) |
| :active |
사용자가 요소를 클릭하여 누르고 있는 순간에 적용됩니다. |
| :focus |
입력창(input) 등을 클릭해서 포커스(커서)가 맞춰져 있을 때 적용됩니다. |
| :first-child |
형제 요소들 중 첫 번째인 요소에 적용됩니다. |
| :last-child |
형제 요소들 중 마지막인 요소에 적용됩니다. |
| :nth-child(n) |
형제 요소들 중 n번째인 요소에 적용됩니다. (예: 2n 짝수, 2n+1 홀수) |
HTML에 <div>를 추가하지 않고도, 오직 CSS만으로 가짜 요소를 창조해내는 마법입니다. 장식용 디자인(아이콘, 뱃지, 밑줄 등)을 넣을 때 HTML을 더럽히지 않기 위해 사용합니다.
::before & ::after 위치 다이어그램
어떤 요소(예: 버튼) 안에 가상 요소가 생성되는 위치
선택된 요소 (예: <button>)
::before
실제 내용 (Content)
::after
가상 요소는 요소의 바깥이 아니라 '안쪽'에 생성됩니다!
::before는 내용의 맨 앞에, ::after는 내용의 맨 뒤에 자식 요소처럼 추가됩니다.
필수 속성 주의
content: ""; 속성을 빼먹으면 화면에 아예 나타나지 않습니다! (빈 문자열이라도 꼭 넣어야 합니다)