다른 답변에 대해서는 잘못 표현되었거나 약간 틀린 답변이 몇 가지 있습니다.
FALSE (ish) : 비표준 HTML 요소는 "허용되지 않음", "불법"또는 "잘못된"입니다.
반드시 그런 것은 아닙니다. 그것들은 "부적합" 입니다. 차이점이 뭐야? 무언가가 "일치하지 않고"여전히 "허용"될 수 있습니다. W3C는 HTML 경찰을 집으로 보내지 않고 집으로 가져갈 수 없습니다.
W3C는 이런 이유로 물건을 남겼습니다. 적합성과 사양은 커뮤니티에 의해 정의됩니다. 좀 더 구체적인 목적을 위해 HTML을 소비하는 소규모 커뮤니티가 있고 모두 더 쉽게 만드는 데 필요한 새로운 요소에 동의하는 경우 W3C가 "다른 적용 가능한 스펙"이라고하는 것을 가질 수 있습니다. . (이것은 분명히 단순화에 대한 총체적이지만 아이디어를 얻습니다)
즉, 엄격한 유효성 검사기는 비표준 요소를 "잘못된"것으로 선언합니다. 하지만 검증의 작업은이에 대해 "합법성"을 보장하지 않기 위해 검증하는 것 스펙 어떤 적합성 보장하기 위해 그의 때문에 브라우저 나에 대한 사용 .
FALSE (ish) : 비표준 HTML 요소 는 렌더링 문제가 발생합니다
아마도 가능하지는 않습니다. ( "will"을 "might"로 대체) 렌더링 문제가 발생하는 유일한 방법은 사용자 지정 요소가 HTML 사양 변경 또는 동일한 시스템 내에서 존중되는 다른 사양과 같은 다른 사양과 충돌하는 경우입니다 (예 : SVG, 수학 또는 사용자 정의).
실제로 CSS가 비표준 태그의 스타일을 지정할 수있는 이유 는 HTML 사양에 다음과 같이 명시되어 있기 때문 입니다.
사용자 에이전트는 이해하지 못하는 요소와 속성을 의미 상 중립으로 취급해야합니다. DOM (DOM 프로세서의 경우)에 그대로두고 CSS (CSS 프로세서의 경우)에 따라 스타일을 지정하지만 의미는 유추하지 않습니다.
참고 : 맞춤 태그를 사용하려는 경우 나중에 HTML 사양을 변경하면 스타일이 손상 될 수 있으므로 준비하십시오. W3C가 실제로 구현할 가능성은 거의 없습니다.<imsocool>
태그 .
비표준 태그 및 JavaScript (DOM을 통한)
JavaScript를 사용하여 사용자 정의 요소에 액세스하고 변경할 수있는 이유는 스펙에서 DOM에서 처리하는 방법에 대해 설명하기 때문입니다. DOM 은 페이지에서 요소를 조작 할 수있는 (정말 끔찍한) API입니다.
HTMLUnknownElement 인터페이스는이 사양 (또는 기타 적용 가능한 사양)으로 정의되지 않은 HTML 요소에 사용해야합니다.
TL; DR : 사양 준수는 통신 및 안전을 위해 수행됩니다. 적합성 을 강제하는 것이 유일한 목적이지만 사용이 선택적인 유효성 검증기 이외의 모든 것은 여전히 부적합을 허용합니다 .
예를 들면 다음과 같습니다.
var wee = document.createElement('wee');
console.log(wee.toString()); //[object HTMLUnknownElement]
(이것이 화염을 일으킬 것이라고 확신하지만 내 2 센트가 있습니다)