HTML5에는 주석에 대한 새로운 표준이 없습니다. 유효한 주석 구문은 여전히 유일합니다 <!-- -->
. 에서 W3C HTML5의 섹션 8.1.6 :
주석은 4 개의 문자 시퀀스 U + 003C LESS-THAN SIGN, U + 0021 EXCLAMATION MARK, U + 002D HYPHEN-MINUS, U + 002D HYPHEN-MINUS ( <!--
)로 시작해야합니다.
이 <!
구문은 HTML5의 일부가 아닌 SGML DTD 마크 업에서 시작됩니다. HTML5에서는 주석, CDATA 섹션 및 DOCTYPE 선언 용으로 예약되어 있습니다. 따라서이 대안이 잘못된 방법인지 여부는 더 이상 사용되지 않는 마크 업의 사용을 나쁜 방법으로 간주하는지 여부에 따라 다릅니다.
Validator.nu는 "Bogus 의견"이있는 것을 호출합니다. — 유효한 주석이 아니더라도 주석처럼 취급됨을 의미합니다. 이것은 아마도 HTML5 이전 버전과 호환되며 SGML 기반이었고 마크 업 선언이 형식을 취 <!FOO>
했기 때문에이 새로운 것으로 부르지 않을 것입니다. 그들이 처리하고 그 이유 처럼 SGML 마크 업 선언을하지 렌더링 할 의미가 특별 선언했기 때문에 의견이다, 그러나 의미는 (위의 예외) HTML5에 있기 때문에, 멀리 HTML5 DOM에 관한 한 그들은 없는 댓글 더 이상 아무것도 .
섹션 8.2.4 의 다음 단계는 이 결론으로 이어 지며 Chrome은 편지를 따르는 것으로 보입니다.
8.2.4.1 데이터 상태 :
다음 입력 문자를 사용하십시오.
"<"(U + 003C)
태그 열기 상태로 전환합니다.
8.2.4.8 태그 열림 상태 :
다음 입력 문자를 사용하십시오.
"!" (U + 0021)
마크 업 선언 열기 상태로 전환하십시오.
8.2.4.45 마크 업 선언 공개 상태 :
다음 두 문자가 모두 "-"(U + 002D) 문자이면이 두 문자를 사용하고 데이터가 빈 문자열 인 주석 토큰을 작성한 후 주석 시작 상태로 전환하십시오.
그렇지 않으면 다음 7자가 "DOCTYPE"이라는 단어와 ASCII의 대소 문자를 구분하지 않으면 해당 문자를 사용하여 DOCTYPE 상태로 전환하십시오.
그렇지 않으면, 조정 된 현재 노드가 있고 HTML 네임 스페이스에 요소가없고 다음 7 개의 문자가 문자열 "[CDATA ["(U +를 가진 5 개의 대문자 "CDATA")와 대소 문자를 구분하는 경우 005B LEFT SQUARE BRACKET 문자 앞뒤), 해당 문자를 소비하고 CDATA 섹션 상태로 전환하십시오.
그렇지 않으면 이것은 구문 분석 오류입니다. 가짜 댓글 상태로 전환합니다. 소비되는 다음 문자 (있는 경우)는 주석에 포함될 첫 번째 문자입니다.
일련의 문자가 발생하는 경우에만 주석 시작 상태로 전환하라는 메시지가 표시됩니다 <!--
. 그렇지 않으면 가짜 주석입니다. 이것은 8.1.6 항에 명시된 내용을 반영합니다.
8.2.4.44 가짜 댓글 상태 :
첫 번째 ">"(U + 003E) 문자 또는 파일 끝 (EOF)을 포함하여 모든 문자를 사용하십시오. 데이터가 상태 머신이 가짜 주석 상태로 전환하게하는 문자를 포함하여 모든 문자의 연결을 포함하는 주석 토큰을 방출합니다. 마지막으로 소비 된 문자 직전의 문자까지 (즉, 문자까지) U + 003E 또는 EOF 문자 바로 앞에 있지만 U + 0000 NULL 문자는 U + FFFD REPLACEMENT CHARACTER 문자로 바뀝니다. (파일의 끝까지 주석이 시작된 경우 (EOF) 토큰은 비어 있습니다. 마찬가지로 " <!>
" 문자열로 생성 된 토큰도 비어 있습니다.)
일반 영어,이 턴 <!div displayed>
에 <!--div displayed-->
와 <!/div>
로는 <!--/div-->
, 정확히 같은 질문에 설명.
마지막으로, 다른 HTML5 호환 파서는 Chrome과 동일하게 작동 할 것으로 예상 할 수 있습니다.