선택자 레벨 5

W3C 최초 공개 작업 초안,

이 문서에 대한 추가 세부 정보
이 버전:
https://www.w3.org/TR/2026/WD-selectors-5-20260217/
최신 게시 버전:
https://www.w3.org/TR/selectors-5/
편집자 초안:
https://drafts.csswg.org/selectors-5/
이력:
https://www.w3.org/standards/history/selectors-5/
피드백:
CSSWG 이슈 저장소
사양 내 인라인
편집자:
Elika J. Etemad / fantasai (Apple)
Tab Atkins Jr. (Google)
이 사양에 대한 편집 제안:
GitHub 편집기
델타 사양:
테스트 스위트:
https://wpt.fyi/results/css/selectors/

초록

선택자는 트리 내의 요소에 대해 매칭되는 패턴이며, 따라서 문서에서 노드를 선택하는 데 사용할 수 있는 여러 기술 중 하나를 이룹니다. 선택자는 HTML 및 XML과 함께 사용하도록 최적화되었으며, 성능이 중요한 코드에서도 사용할 수 있도록 설계되었습니다. 선택자는 CSS(Cascading Style Sheets)의 핵심 구성 요소로, CSS는 선택자를 사용하여 스타일 속성을 문서의 요소에 바인딩합니다. 선택자 레벨 5는 [selectors-4]에 이미 존재하는 선택자들을 설명하고, 더 나아가 CSS 및 이를 필요로 할 수 있는 다른 언어를 위한 새로운 선택자를 추가로 도입합니다.

CSS는 구조화된 문서(예: HTML 및 XML)의 렌더링을 설명하는 언어로, 화면, 종이 등에서 사용됩니다.

이 문서의 상태

이 절은 발행 시점의 이 문서 상태를 설명합니다. 현재 W3C 발행물 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 확인할 수 있습니다.

이 문서는 CSS 워킹 그룹에 의해 최초 공개 작업 초안으로 발행되었으며, 권고 트랙을 사용합니다. 최초 공개 작업 초안으로의 발행은 W3C 및 그 회원의 보증을 의미하지 않습니다.

이 문서는 초안 문서이며 언제든지 업데이트, 대체되거나 다른 문서에 의해 폐기될 수 있습니다. 진행 중인 작업 이외의 것으로 이 문서를 인용하는 것은 부적절합니다.

피드백은 GitHub에 이슈를 등록하여(권장), 제목에 사양 코드 “selectors”를 포함해 다음과 같이 보내 주세요: “[selectors] …의견 요약…”. 모든 이슈와 코멘트는 보관됩니다. 또는, (보관된) 공개 메일링 리스트 www-style@w3.org로 피드백을 보낼 수도 있습니다.

이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받습니다.

이 문서는 W3C 특허 정책 하에서 운영되는 그룹에 의해 작성되었습니다. W3C는 해당 그룹의 산출물과 관련하여 공개된 모든 특허 공개에 대한 공개 목록을 유지하며; 해당 페이지에는 특허 공개 방법에 대한 지침도 포함되어 있습니다. 어떤 개인이 자신이 믿기에 필수 청구항(Essential Claim(s))을 포함하는 특허에 대해 실제로 알고 있는 경우, W3C 특허 정책 6절에 따라 그 정보를 공개해야 합니다.

1. 소개

이 문서는 선택자 레벨 4에 대한 차이점(diff) 사양입니다.

1.1. 모듈 상호작용

이 모듈은 [selectors-4]에서 CSS를 위해 정의된 선택자 집합을 확장합니다.

2. 위치 의사 클래스

2.1. 로컬 링크 의사 클래스 :local-link

:local-link 의사 클래스는 작성자가 사용자의 현재 사이트 내 위치를 기준으로 하이퍼링크를 스타일링할 수 있게 하며, 사이트 내부 링크와 사이트 외부 링크를 구분할 수 있게 합니다.

(비-함수형) :local-link 의사 클래스는 대상의 절대 URL이 해당 요소 자신의 문서 URL과 일치하는 하이퍼링크의 소스 앵커인 요소를 나타냅니다. 문서의 URL과 링크의 URL을 매칭하기 전에 모든 프래그먼트 식별자는 제거되며; 그 외에는 URL의 모든 부분이 고려됩니다.

예를 들어, 다음 규칙은 내비게이션 목록의 일부인 경우 현재 페이지를 대상으로 하는 링크가 밑줄 표시되지 않도록 합니다:
nav :local-link { text-decoration: none; } 

함수형 의사 클래스로서, :local-link()는 단 하나의 인수로 0 이상의 정수를 받을 수도 있으며, 문서의 URL이 계층적 스킴에 속하는 경우, 일치시킬 경로 수준의 개수를 나타냅니다:

다음 예제는 모든 사이트 외부 링크를 점선 밑줄로 스타일링합니다.
:not(:local-link(0)) { text-decoration-style: dashed; } 

경로 세그먼트는 URL 경로에서 슬래시(/)로 구분되는 부분입니다. 문서 URL에 특정 세그먼트가 존재하지 않는 경우, 해당 세그먼트가 일치할 것을 요구하는 의사 클래스는 아무것도 매칭하지 않습니다.

따라서 다음 링크들이 주어졌을 때:
  1. <a href="http://www.example.com">Home</a>
  2. <a href="http://www.example.com/2011">2011</a>
  3. <a href="http://www.example.com/2011/03">March</a>
  4. <a href="http://www.example.com/2011/03/">March</a>
  5. <a href="http://www.example.com/2011/03/21">21 March</a>
  6. <a href="https://www.example.com/2011/03/">March</a>
  7. <a href="http://example.com/2011/03/">March</a>

그리고 다음 스타일들이 있을 때:

  1. a:local-link {...}
  2. a:local-link(0) {...}
  3. a:local-link(1) {...}
  4. a:local-link(2) {...}
  5. a:local-link(3) {...}
  6. a:local-link(4) {...}

문서의 URL이 http://www.example.com/2011/03/이라면:

  1. 링크 1은 스타일 B를 적용받습니다
  2. 링크 2는 스타일 B와 C를 적용받습니다
  3. 링크 3은 스타일 B, C, D를 적용받습니다
  4. 링크 4는 또한 스타일 A, B, C, D, E를 적용받습니다
  5. 링크 5는 스타일 B, C, D를 적용받습니다
  6. 링크 6은 스타일이 적용되지 않은 채로 남습니다
  7. 링크 7은 스타일이 적용되지 않은 채로 남습니다
  8. 스타일 F는 어떤 것에도 적용되지 않습니다

URL의 "origin"은 RFC 6454, 4절에서 정의됩니다. URL의 사용자 이름, 비밀번호, 쿼리 문자열, 그리고 프래그먼트 부분은 :local-link(n)에 대해 매칭할 때 고려되지 않습니다. 문서의 URL이 계층적 스킴에 속하지 않는 경우, 함수형 의사 클래스는 아무것도 매칭하지 않습니다.

문서 URL에 최소 N개의 세그먼트가 있다면, :local-link(N)은 URL에 최소 N개의 세그먼트가 있는 링크만 매칭한다는 점은 명확합니다. (이를 통해 :local-link에 일관된 의미를 부여할 수 있으며, 예를 들어 :local-link(2)는 GitHub에서 "저장소 내(within-repo)" 링크를 의미할 수 있습니다.) 그런데 문서 URL에 N개보다 적은 세그먼트가 있고, 링크가 동일 페이지(same-page)인 경우에는 어떻게 되나요? "널 세그먼트(null segments)"를 일치하는 것으로 계산해야 할까요, 아니면 그렇지 않아야 할까요?

3. 사용자 동작 의사 클래스

3.1. 관심(Interest) 의사 클래스: :interest-source:interest-target

일반적인 UI 기능 중 하나는 사용자가 특정 요소에 대해 "관심을 표시(show interest)"할 수 있는 능력이며 ( 관심 소스), UI는 그 관심에 반응하여 다른 요소에 추가 정보를 표시합니다 ( 관심 대상), 보통 팝업 형태입니다. 예를 들어, 페이지에서 사용자 이름 위에 마우스를 올리면 해당 사용자의 정보 카드가 나타날 수 있고; 또는 링크를 길게 누르면 링크 목적지의 미리보기가 나타날 수 있습니다. 이런 일이 발생할 때마다, 첫 번째 요소는

참고: 어떤 요소가 관심 소스가 될 수 있는지, 어떻게 관심 대상에 연결되는지, 그리고 "관심"이 어떻게 표시되는지는 모두 호스트 언어가 정의합니다. 예를 들어 HTML에서는, "관심을 표시"할 수 있는 요소(즉 관심 소스가 되는 요소)를 나타내기 위해 interestfor 속성을 사용하며, 그 속성은 추가 정보를 표시하려는 다른 요소(연결된 관심 대상)를 가리킵니다 (보통 popover 요소).

:interest-source 의사 클래스는 사용자가 현재 "관심을 표시"하고 있는 관심 소스 요소에 적용되며, :interest-target 의사 클래스는 :interest-source에 매칭되는 요소와 연관된 관심 대상에 적용됩니다.

참고: :interest-source는 사용자가 현재 관심을 갖고 있는 관심 소스에만 매칭되며, 잠재적으로 관심 표시가 가능할 수 있는 어떤 요소에도 매칭되는 것은 아닙니다. 예를 들어 HTML에서는, 단지 interestfor 속성이 있다는 것만으로는 해당 요소가 이 의사 클래스에 매칭되지 않으며; 사용자가 실제로 그것에 대해 관심을 표시해야 합니다. 마찬가지로, :interest-target도 사용자가 현재 관심을 갖고 있는 요소에 연결된 관심 대상에만 매칭되며, interestfor 속성이 가리키는 어떤 요소에도 매칭되는 것은 아닙니다.

4. 입력 의사 클래스

4.1. 입력 값 검사

4.1.1. 빈 값 의사 클래스: :blank

:blank 의사 클래스는 입력 값이 비어 있는 사용자 입력 요소에 적용됩니다 (빈 문자열로 구성되거나, 또는 그 밖의 null 입력).

대략적으로 말해, 사람이 폼의 출력물을 보고 비어 있다고 말할 것이라면, :blank에 매칭됩니다.

폼 컨트롤에서 :blank를 해석하는 경험칙은 다음과 같습니다:

호스트 언어는 폼 컨트롤이 :blank에 매칭되는 시점에 대해 더 정밀한 규칙을 지정할 수 있습니다.

5. 시간 차원 의사 클래스

이러한 의사 클래스는 문서의 음성 렌더링 중이거나, WebVTT를 사용하여 자막을 렌더링하는 비디오의 표시 중인 경우처럼, 어떤 타임라인에서 현재 표시되거나 활성인 위치에 대해 요소를 분류합니다.

CSS는 이 타임라인을 정의하지 않으며; 호스트 언어가 정의해야 합니다. 요소에 대해 정의된 타임라인이 없다면, 이러한 의사 클래스는 해당 요소에 매칭되어서는 안 됩니다.

참고: :current 요소의 조상도 또한 :current이지만, :past 또는 :future 요소의 조상은 반드시 :past 또는 :future인 것은 아닙니다. 어떤 요소는 최대 하나의 :current, :past, 또는 :future에만 매칭됩니다.

5.1. 현재 요소 의사 클래스: :current

:current 의사 클래스는 현재 표시되고 있는 요소, 또는 그 요소의 조상을 나타냅니다.

대체 형태인 :current()는 인수로 복합 선택자(compound selectors) 목록을 받습니다: 이는 인수에 매칭되는 :current 요소를 나타내거나, 그것이 매칭되지 않으면, 인수에 매칭되는 :current 요소의 가장 안쪽(innermost) 조상을 나타냅니다. ( :current 요소나 그 조상 중 어느 것도 인수에 매칭되지 않으면, 해당 선택자는 아무것도 나타내지 않습니다.)

예를 들어, 다음 규칙은 문서의 음성 렌더링에서 소리 내어 읽히는 단락 또는 목록 항목을 강조 표시합니다:
:current(p, li, dt, dd) {
  background: yellow;
}

5.2. 과거 요소 의사 클래스: :past

:past 의사 클래스는 :current 요소보다 완전히 이전에 발생하는 것으로 정의된 모든 요소를 나타냅니다. 예를 들어 WebVTT 사양은 :past 의사 클래스를 미디어 요소의 현재 재생 위치에 상대적으로 정의합니다. 문서 언어가 요소의 시간 기반 순서를 정의하지 않는다면, 이는 :current 요소의 (직접 또는 간접) 이전 형제일 수 있는 모든 요소를 나타냅니다.

5.3. 미래 요소 의사 클래스: :future

:future 의사 클래스는 :current 요소보다 완전히 이후에 발생하는 것으로 정의된 모든 요소를 나타냅니다. 예를 들어 WebVTT 사양은 :future 의사 클래스를 미디어 요소의 현재 재생 위치에 상대적으로 정의합니다. 문서 언어가 요소의 시간 기반 순서를 정의하지 않는다면, 이는 :current 요소의 (직접 또는 간접) 다음 형제일 수 있는 모든 요소를 나타냅니다.

6. 사용자 정의 상태 노출: :state() 의사 클래스

:state( <ident> ) 의사 클래스는, 커스텀 요소(custom elements) 중에서 상태 집합(states set)이 선택자의 인수 값과 동일한(is) 문자열을 포함하는 요소에 매칭됩니다.

Tests

참고:is” 매칭 동작은 문자열을 코드포인트로 비교하며; 특히 대소문자를 구분합니다. 따라서 상태 집합에 "foo"가 있다면, :state(FOO)는 매칭되지 않습니다.

:state() 의사 클래스의 정확한 매칭 동작은 호스트 언어가 정의합니다. 명확성을 위해, 이 의사 클래스를 설명하는 개념은 HTML 정의로 연결됩니다; 자세한 내용은 HTML의 정의를 참고하십시오. 다른 호스트 언어는 이 의사 클래스가 어떻게 매칭되는지 정의해야 합니다.

7. 제목 구조: 제목 의사 클래스 :heading:heading()

(비-함수형) :heading 의사 클래스는 문서 언어(예: [HTML5])가 정의한 의미론에 따라 제목 레벨(heading level)을 가진 요소에 매칭됩니다.

특이성(specificity)에서 :heading의 특이성은 클래스와 같습니다.

예를 들어, 다음 스타일시트에는 현재 페이지의 모든 제목 요소에 적용되는 규칙이 포함되어 있습니다:
:heading { text-decoration: underline; }

함수형 의사 클래스로서, :heading() 표기법은 제공된 integer 값 중 하나와 매칭되는 제목 레벨(heading level)을 가진 요소를 나타냅니다. 구문은 다음과 같습니다:

:heading() = :heading( <level># )

여기서 <level>은 type 플래그가 "integer"로 설정된 <number-token>입니다.

특이성(specificity)에서 :heading()의 특이성은 클래스와 같습니다.

다음 예제는 레벨 1~3의 제목을 font-weight 900으로, 레벨 6 이후의 제목을 font-weight 500으로 스타일링하며, 추가로 레벨 1과 2는 밑줄을 표시하고, 레벨 3 이상은 text-decoration이 없도록 합니다:
:heading(1, 2, 3) { font-weight: 900; }
:heading(6, 7, 8, 9) { font-weight: 500; }
:heading(1, 2) { text-decoration: underline; }
:heading(3, 4, 5, 6, 7, 8, 9) { text-decoration: none; }

참고: 제목 레벨(heading level)은 요소의 타입 선택자(type selector)와 다를 수 있습니다. 따라서 선택자 h1:heading(3)은 노출된 제목 레벨이 3인 어떤 h1 태그에도 매칭됩니다.

Tests

8. 격자 구조 선택자

2차원 격자에서 셀의 이중 연결(행과 열에 대한 연결)은 계층적 마크업 언어에서 부모-자식 관계로는 표현될 수 없습니다. 이 연결 중 하나만 계층적으로 표현될 수 있으며: 다른 하나는 문서 언어의 의미론에 의해 명시적으로 또는 암묵적으로 정의되어야 합니다. 가장 일반적인 계층적 마크업 언어 두 가지인 HTML과 DocBook에서는, 마크업이 행 중심(row-primary)입니다(즉, 행에 대한 연결이 계층적으로 표현됩니다); 열은 암묵적으로 유추되어야 합니다. 이러한 암묵적인 열 기반 관계를 표현할 수 있도록, 열 결합자(column combinator):nth-col(), 그리고 :nth-last-col() 의사 클래스가 정의됩니다. 열 중심(column-primary) 형식에서는, 이들 의사 클래스는 대신 행 연결에 대해 매칭됩니다.

8.1. 열 결합자 (||)

열 결합자(column combinator)는, 두 개의 파이프 문자로 구성되며(||), 열 요소와 그 열에 속하는 셀 요소 간의 관계를 나타냅니다. 열 소속 여부는 문서 언어의 의미론에 근거해서만 결정됩니다: 요소가 어떻게 표시되는지 또는 표시되는지 여부는 고려되지 않습니다. 어떤 셀 요소가 둘 이상의 열에 속한다면, 그 셀은 그 열들 중 어느 하나에 속함을 나타내는 선택자로 표현됩니다.

다음 예제는 셀 C, E, G를 회색으로 만듭니다.
col.selected || td {
  background: gray;
  color: white;
  font-weight: bold;
}
<table>
  <col span="2">
  <col class="selected">
  <tr><td>A <td>B <td>C
  <tr><td colspan="2">D <td>E
  <tr><td>F <td colspan="2">G
</table>

8.2. :nth-col() 의사 클래스

:nth-col(An+B) 의사 클래스 표기법은, 어떤 양의 정수 또는 0인 n 값에 대해, 그 이전에 An+B-1개의 열이 있는 열에 속하는 셀 요소를 나타냅니다. 열 소속 여부는 문서 언어의 의미론에 근거해서만 결정됩니다: 요소가 어떻게 표시되는지 또는 표시되는지 여부는 고려되지 않습니다. 어떤 셀 요소가 둘 이상의 열에 속한다면, 그 셀은 그 열들 중 어느 하나를 나타내는 선택자로 표현됩니다.

CSS Syntax 모듈 [CSS3SYN]An+B 표기법을 정의합니다.

8.3. :nth-last-col() 의사 클래스

:nth-last-col(An+B) 의사 클래스 표기법은, 어떤 양의 정수 또는 0인 n 값에 대해, 그 이후에 An+B-1개의 열이 있는 열에 속하는 셀 요소를 나타냅니다. 열 소속 여부는 문서 언어의 의미론에 근거해서만 결정됩니다: 요소가 어떻게 표시되는지 또는 표시되는지 여부는 고려되지 않습니다. 어떤 셀 요소가 둘 이상의 열에 속한다면, 그 셀은 그 열들 중 어느 하나를 나타내는 선택자로 표현됩니다.

CSS Syntax 모듈 [CSS3SYN]An+B 표기법을 정의합니다.

9. 결합자

9.1. 참조 결합자 /ref/

참조 결합자(reference combinator)는 그 사이에 CSS 한정 이름(qualified name)이 들어간 두 개의 슬래시로 구성되며, 두 복합 선택자(compound selectors)를 구분합니다. 예: A /attr/ B. 첫 번째 복합 선택자가 나타내는 요소는 두 번째 복합 선택자가 나타내는 요소를 명시적으로 참조합니다. 호스트 언어가 이 관계를 표현하기 위한 다른 구문을 정의하지 않는 한, 이 관계는 첫 번째 요소의 지정된 속성 값이 두 번째 요소를 참조하는 IDREF이거나 ID 선택자(ID selector)인 경우 존재하는 것으로 간주됩니다.

참조 결합자에 대한 속성 매칭은 속성 선택자(attribute selectors)와 동일한 규칙을 따릅니다.

다음 예제는 input 요소를, 해당 <label>이 포커스되거나 hover 되었을 때 강조 표시합니다:
label:is(:hover, :focus) /for/ input,       /* "for" 속성에 의한 연결 */
label:is(:hover, :focus):not([for]) input { /* 포함(containment)에 의한 연결 */
  box-shadow: yellow 0 0 10px;
}

10. 변경사항

10.1. 레벨 4 이후 변경사항

레벨 4 이후 추가된 사항:

11. 감사의 글

CSS 워킹 그룹은 여러 해에 걸쳐 이전 선택자 사양에 기여한 모든 분들께 감사를 전하고자 합니다. 이러한 사양들은 본 사양의 기반을 이루었습니다. 특히 워킹 그룹은 선택자 레벨 5에 대한 구체적 기여에 대해 다음 분께 특별한 감사를 전하고자 합니다: Joey Arhar.

개인정보 고려사항

적절한 경우 레벨 4에서 복사되어야 합니다.

보안 고려사항

적절한 경우 레벨 4에서 복사되어야 합니다.

적합성

문서 관례

적합성 요구사항은 서술적 단언과 RFC 2119 용어를 조합하여 표현합니다. 핵심 단어 “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, 및 “OPTIONAL”은 이 문서의 규범적 부분에서 RFC 2119에 설명된 대로 해석되어야 합니다. 하지만 가독성을 위해, 이 사양에서는 이러한 단어들이 항상 모두 대문자로 표기되지는 않습니다.

이 사양의 모든 텍스트는 규범적이며, 명시적으로 비규범적이라고 표시된 절, 예제, 그리고 참고(note)만 예외입니다. [RFC2119]

이 사양의 예제는 “예를 들어(for example)” 라는 말로 소개되거나, 다음과 같이 class="example"로 규범적 텍스트와 구분되어 표시됩니다:

이것은 정보성(informative) 예제의 예입니다.

정보성 참고는 “Note”라는 단어로 시작하며, 다음과 같이 class="note"로 규범적 텍스트와 구분되어 표시됩니다:

참고(Note): 이것은 정보성 참고입니다.

권고(advisement)는 특별한 주의를 환기하도록 스타일링된 규범적 절이며, 다음과 같이 <strong class="advisement">로 다른 규범적 텍스트와 구분되어 표시됩니다: UAs MUST 접근 가능한 대안을 제공해야 합니다.

테스트

이 사양의 내용과 관련된 테스트는 이와 같은 “Tests” 블록에 문서화될 수 있습니다. 이러한 블록은 모두 비규범적입니다.


적합성 클래스

이 사양에 대한 적합성은 다음의 세 가지 적합성 클래스로 정의됩니다:

스타일시트
CSS 스타일시트.
렌더러
스타일시트의 의미를 해석하고, 이를 사용하는 문서를 렌더링하는 UA.
저작 도구
스타일시트를 작성하는 UA.

스타일시트는 이 모듈에서 정의된 구문을 사용하는 모든 선언이 일반 CSS 문법과 이 모듈에서 정의된 각 기능의 개별 문법에 따라 유효하다면, 이 사양에 적합합니다.

렌더러는, 적절한 사양에서 정의된 대로 스타일시트를 해석하는 것에 더해, 이 사양에서 정의된 모든 기능을 올바르게 파싱하고 그에 맞게 문서를 렌더링함으로써 지원한다면, 이 사양에 적합합니다. 하지만 장치의 제약으로 인해 UA가 문서를 올바르게 렌더링할 수 없더라도 UA가 부적합이 되는 것은 아닙니다. (예를 들어, UA는 단색 모니터에서 색상을 렌더링할 의무가 없습니다.)

저작 도구는, 이 모듈의 각 기능에 대한 개별 문법과 일반 CSS 문법에 따라 문법적으로 올바른 스타일시트를 작성하고, 이 모듈에 설명된 스타일시트의 다른 모든 적합성 요구사항을 충족한다면, 이 사양에 적합합니다.

부분 구현

작성자가 전방 호환 가능한 파싱 규칙을 이용하여 폴백 값을 할당할 수 있도록, CSS 렌더러는 사용 가능한 수준의 지원이 없는 모든 at-rule, 속성, 속성 값, 키워드, 및 기타 구문 구성 요소를 무효로 취급(그리고 적절히 무시)해야 합니다. 특히 사용자 에이전트는 단일 다중 값 속성 선언에서 지원되지 않는 구성 요소 값만 선택적으로 무시하고 지원되는 값은 존중해서는 안 됩니다: 어떤 값이 무효로 간주된다면(지원되지 않는 값은 반드시 그렇게 되어야 하듯), CSS는 전체 선언이 무시되도록 요구합니다.

불안정 및 독점 기능의 구현

미래의 안정적인 CSS 기능과의 충돌을 피하기 위해, CSSWG는 모범 사례를 따를 것을 권고합니다. 이는 불안정 기능과 독점 확장의 구현을 위한 것입니다.

비-실험적 구현

사양이 후보 권고(Candidate Recommendation) 단계에 도달하면, 비-실험적 구현이 가능해지며, 구현자는 사양에 따라 올바르게 구현되었음을 입증할 수 있는 CR 수준 기능에 대해 접두사 없는(unprefixed) 구현을 배포해야 합니다.

구현 간 CSS 상호운용성을 확립하고 유지하기 위해, CSS 워킹 그룹은 비-실험적 CSS 렌더러가 접두사 없는 CSS 기능 구현을 배포하기 전에 구현 보고서(그리고 필요한 경우 그 구현 보고서에 사용된 테스트케이스)를 W3C에 제출할 것을 요청합니다. W3C에 제출된 테스트케이스는 CSS 워킹 그룹의 검토 및 수정 대상이 됩니다.

테스트케이스 및 구현 보고서 제출에 대한 추가 정보는 CSS 워킹 그룹 웹사이트 https://www.w3.org/Style/CSS/Test/에서 찾을 수 있습니다. 질문은 public-css-testsuite@w3.org 메일링 리스트로 보내야 합니다.

색인

이 사양에서 정의된 용어

참조로 정의된 용어

참고문헌

규범적 참고문헌

[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 12 March 2024. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS3SYN]
Tab Atkins Jr.; Simon Sapin. CSS Syntax Module Level 3. 24 December 2021. CRD. URL: https://www.w3.org/TR/css-syntax-3/
[HTML]
Anne van Kesteren; et al. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[INFRA]
Anne van Kesteren; Domenic Denicola. Infra Standard. Living Standard. URL: https://infra.spec.whatwg.org/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[SELECTORS-4]
Elika Etemad; Tab Atkins Jr.. Selectors Level 4. 22 January 2026. WD. URL: https://www.w3.org/TR/selectors-4/

정보성 참고문헌

[CSS2]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. REC. URL: https://www.w3.org/TR/CSS2/
[HTML5]
Ian Hickson; et al. HTML5. 27 March 2018. REC. URL: https://www.w3.org/TR/html5/
[WAI-ARIA-1.2]
Joanmarie Diggs; et al. Accessible Rich Internet Applications (WAI-ARIA) 1.2. 6 June 2023. REC. URL: https://www.w3.org/TR/wai-aria-1.2/

이슈 색인

This is a diff spec against Selectors Level 4.
문서 URL에 최소 N개의 세그먼트가 있다면, :local-link(N)은 URL에 최소 N개의 세그먼트가 있는 링크만 매칭한다는 점은 명확합니다. (이를 통해 :local-link에 일관된 의미를 부여할 수 있으며, 예를 들어 :local-link(2)는 GitHub에서 "저장소 내(within-repo)" 링크를 의미할 수 있습니다.) 그런데 문서 URL에 N개보다 적은 세그먼트가 있고, 링크가 동일 페이지(same-page)인 경우에는 어떻게 되나요? "널 세그먼트(null segments)"를 일치하는 것으로 계산해야 할까요, 아니면 그렇지 않아야 할까요?