HTML5 : ID 및 클래스 속성에 허용되는 값
HTML5 기준으로, ID 값에 대한 유일한 제한 사항은 다음과 같습니다.
- 문서에서 고유해야합니다
- 공백 문자를 포함해서는 안됩니다
- 하나 이상의 문자를 포함해야합니다
비슷한 규칙이 수업에 적용됩니다 (물론 고유성을 제외하고).
따라서 값은 모든 숫자, 한 자릿수, 문장 부호 문자 일 수 있으며 특수 문자를 포함 할 수 있습니다. 공백이 없습니다. 이것은 HTML4와는 매우 다릅니다.
HTML 4에서 ID 값은 문자로 시작해야하며 문자, 숫자, 하이픈, 밑줄, 콜론 및 마침표 만 뒤에 올 수 있습니다.
HTML5에서는 유효합니다 :
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>
ID 값에 숫자, 문장 부호 또는 특수 문자를 사용하면 다른 컨텍스트 (예 : CSS, JavaScript, 정규식)에서 문제가 발생할 수 있습니다.
예를 들어 다음 ID는 HTML5에서 유효합니다.
<div id="9lions"> ... </div>
그러나 CSS에서는 유효하지 않습니다.
CSS2.1 스펙에서 :
4.1.3 문자와 대소 문자
CSS에서 식별자 (선택자에 요소 이름, 클래스 및 ID 포함)는 [a-zA-Z0-9] 및 ISO 10646 문자 U + 00A0 이상 문자와 하이픈 (-) 및 밑줄 ( _); 숫자, 하이픈 2 개 또는 하이픈 다음에 숫자로 시작할 수 없습니다 .
대부분의 경우 제한이나 특별한 의미가있는 상황에서 문자를 이스케이프 처리 할 수 있습니다.
W3C 참조
HTML5
3.2.5.1 id
속성
이 id
속성은 요소의 고유 식별자 (ID)를 지정합니다.
값은 요소의 홈 서브 트리에있는 모든 ID 중에서 고유해야하며 하나 이상의 문자를 포함해야합니다. 값은 공백 문자를 포함하지 않아야합니다.
참고 : ID가 취할 수있는 양식에는 다른 제한이 없습니다. 특히 ID는 숫자로만 구성되고, 숫자로 시작하고, 밑줄로 시작하고, 구두점만으로 구성 될 수 있습니다.
3.2.5.7 class
속성
지정된 경우 속성에는 요소가 속하는 다양한 클래스를 나타내는 공백으로 구분 된 토큰 세트 값이 있어야합니다.
HTML 요소가 할당 한 클래스는 class 속성 값이 공백으로 분할 될 때 반환 된 모든 클래스로 구성됩니다. 중복은 무시됩니다.
작성자가 클래스 속성에 사용할 수있는 토큰에 대한 추가 제한은 없지만 저자는 원하는 컨텐츠 표현을 설명하는 값보다는 컨텐츠의 특성을 설명하는 값을 사용하도록 권장됩니다.