--- title: 의사 클래스 slug: Web/CSS/Pseudo-classes tags: - CSS - Overview - Pseudo-class - Reference - Selectors translation_of: Web/CSS/Pseudo-classes ---
{{CSSRef}}

CSS 의사 클래스(가상 클래스)는 선택자에 추가하는 키워드로, 선택한 요소가 특별한 상태여야 만족할 수 있습니다. 예를 들어 {{cssxref(":hover")}}를 사용하면 포인터를 올렸을 때에만 글씨 색을 바꾸고 싶을 때 사용할 수 있습니다.

/* Any button over which the user's pointer is hovering */
button:hover {
  color: blue;
}

의사 클래스를 사용하면 문서 트리 콘텐츠와 관련된 경우 뿐만 아니라 탐색기 히스토리({{cssxref(":visited")}} 등), 콘텐츠의 상태(특정 폼 요소에 적용한 {{cssxref(":checked")}} 등), 마우스의 위치(커서가 마우스 위인지 아닌지 알 수 있는 {{cssxref(":hover")}} 등)처럼 외부 인자와 관련된 경우에도 스타일을 적용할 수 있습니다.

참고: 의사 요소는 의사 클래스와 달리 요소의 특정 부분에 스타일을 적용할 때 사용합니다.

구문

selector:pseudo-class {
  property: value;
}

일반적인 클래스와 같이 여러 개의 의사 클래스를 조합해 복잡한 선택자를 만들 수 있습니다.

표준 의사 클래스 색인

명세

Specification Status Comment
{{SpecName("Fullscreen")}} {{Spec2("Fullscreen")}} Defined :fullscreen.
{{SpecName("HTML WHATWG", "#pseudo-classes")}} {{Spec2("HTML WHATWG")}} Defines when particular selectors match HTML elements.
{{SpecName("CSS4 Selectors")}} {{Spec2("CSS4 Selectors")}} Defined :any-link, :blank, :local-link, :scope, :drop, :current, :past, :future, :placeholder-shown, :user-invalid, :nth-col(), :nth-last-col(), :is() and :where().
Changed :empty to behave like {{CSSxRef(":-moz-only-whitespace")}} {{Non-standard_Inline}}.
No significant change for other pseudo-classes defined in {{SpecName("CSS3 Selectors")}} and {{SpecName("HTML5 W3C")}} (though semantic meaning not taken over).
{{SpecName("HTML5 W3C")}} {{Spec2("HTML5 W3C")}} Copies the relevant section from the canonical (WHATWG) HTML spec.
{{SpecName("CSS3 Basic UI")}} {{Spec2("CSS3 Basic UI")}} Defined :default, :valid, :invalid, :in-range, :out-of-range, :required, :optional, :read-only and :read-write, but without the associated semantic meaning.
{{SpecName("CSS3 Selectors")}} {{Spec2("CSS3 Selectors")}} Defined :target, :root, :nth-child(), :nth-last-of-child(), :nth-of-type(), :nth-last-of-type(), :last-child, :first-of-type, :last-of-type, :only-child, :only-of-type, :empty and :not().
Defined the syntax of :enabled, :disabled, :checked, and :indeterminate, but without the associated semantic meaning.
No significant change for pseudo-classes defined in {{SpecName('CSS2.1')}}.
{{SpecName("CSS2.1")}} {{Spec2("CSS2.1")}} Defined :lang(), :first-child, :hover, and :focus.
No significant change for pseudo-classes defined in {{SpecName('CSS1')}}.
{{SpecName("CSS1")}} {{Spec2("CSS1")}} Defined :link, :visited and :active, but without the associated semantic meaning.

같이 보기