가상 클래스
CSS 의사 클래스(가상 클래스)는 선택자에 추가하는 키워드로, 선택한 요소가 특별한 상태여야 만족할 수 있다. 예를 들어 :hover를 사용하면 포인터를 올렸을 때에만 글씨 색을 바꾸고 싶을 때 사용할 수 있다.
a:hover {
color: red;
}
의사 클래스를 사용하면 문서 트리 콘텐츠와 관련된 경우 뿐만 아니라 탐색기 히스톨(:visited 등), 콘텐츠의 상태(특정 폼 요소에 적용한:checked 등), 마우스의 위치(커서가 마우스 위인지 아닌지 알 수 있는 :hover 등)처럼 외부 인자와 관련된 경우에도 스타일을 적용할 수 있다.
:hover- HTML 요소에 마우스 커서가 올라가 있는 동안 서택
a:hover { color: red; }
- HTML 요소에 마우스 커서가 올라가 있는 동안 서택
:active- HTML 요소에 마우스를 클릭하고 있는 동안 선택
a:active { color: red; }
- HTML 요소에 마우스를 클릭하고 있는 동안 선택
:checked- 선택했거나
on상태인 라디오(<input type='radio'>), 체크박스(<input type='checkbox'>), 옵션(<option>) 요소를 나타낸다.input:checked { margin-left: 25px; border: 1px solid blue; }
- 선택했거나
:disabled- 모든 비활성 요소를 나타낸다.
- 비활성 요소란 활성(선택, 클릭, 입력 등등) 하거나 포커스를 받을 수 없는 요소를 말한다.
/* 모든 비활성 <input> 선택 */ input:disabled { background: #ccc; }
:first-child- 형제 요소 중 제일 첫 요소를 나타낸다.
p:first-child { color: lime; }
- 형제 요소 중 제일 첫 요소를 나타낸다.
:focus- 양식의 입력 칸 등 포커스를 받은 요소
- 보통 사용자가 요소를 클릭 또는 탭하거나, 키보드
Tab키로 선택했을 때 발동한다./* Selects any <input> when focused */ input:focus { color: red; }
:last-child- 형제 요소 중 제일 마지막 요소를 나타낸다.
li:last-child { color: red; }
- 형제 요소 중 제일 마지막 요소를 나타낸다.
:link- 아직 방문하지 않은 요소를 나타낸다.
href속성을 가진,<a>,<area>,<link>중 방문하지 않은 모든 요소를 선택한다./* 아직 방문하지 않은 <a> 요소를 선택 */ a:link { color: red; }
:nth-child- 형제 사이에서의 순서에 따라 요소를 선택한다. ```css /* 목록의 두 번째 <li> 선택 */ li:nth-child(2) { color: lime; }
/* 임의의 그룹에서 네 번째에 위치하는 모든 요소 선택 */ :nth-child(4n) { color: lime; } ```
:visited- 사용자가 방문한 적이 있는 링크를 나타낸다.
:visited가 바꿀 수 있는 스타일은 개인정보 보호를 위해 매우 제한적이다./* 방문한 적이 있는 <a> 선택 */ a:visited { color: green; }
더 많은 CSS 의사 클래스에 대해서는 MDN 사이트에서 확인할 수 있다.