의견에서 말했듯이, HTML5 용 doctype (<!DOCTYPE html>
)을 사용하는 것은 정당한 선택입니다.
그러나 어떤 이유로 든 XHTML 1에 문제가있을 수 있습니다. 그러한 이유 중 하나는 XHTML 1이 실제 DTD를 가지고 있기 때문에
및 þ
과 같은 엔티티 참조 사용을 지원한다는 것입니다. (XHTML5는 그런 고급 스러움을 가지고 있지 않다.)
그렇다면 브라우저가 이미 canvas
과 같은 최신 요소를 지원한다는 것을 눈치 챘을 것이다. 그렇기 때문에 브라우저가 작동하도록하려면 아무 것도하지 않아도된다. 유효성 검사기를 만족시키는 것만하면됩니다!
트릭이 있습니다. doctype 선언에 DTD의 일부인 것처럼 최신 요소를 추가하기 만하면됩니다. 이 훨씬 조금 생각하면
그런데
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
[
<!ELEMENT canvas EMPTY>
<!ATTLIST canvas
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
title CDATA #IMPLIED
lang CDATA #IMPLIED
xml:lang CDATA #IMPLIED
dir (ltr|rtl) #IMPLIED
onclick CDATA #IMPLIED
ondblclick CDATA #IMPLIED
onmousedown CDATA #IMPLIED
onmouseup CDATA #IMPLIED
onmouseover CDATA #IMPLIED
onmousemove CDATA #IMPLIED
onmouseout CDATA #IMPLIED
onkeypress CDATA #IMPLIED
onkeydown CDATA #IMPLIED
onkeyup CDATA #IMPLIED
height CDATA #IMPLIED
width CDATA #IMPLIED
>
<!ENTITY % InlSpecial.class
" | audio | canvas | embed | iframe | img | math | object | svg | video">
]
>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
<head>
<title>Element test</title>
</head>
<body>
<div>
<canvas id="canvas" width="500" height="250" style="background-color:#303030;"></canvas>
</div>
</body>
</html>
, 당신은 당신이 실제로 사용하고있는 것을 제외하고는 ATTLIST에서 모든 속성을 제거 할 수 있습니다 만, 유효성 검사기를 충족하기 위해이 작업을 수행 할 필요가 있음을 기억 (귀하의 예에서는 id
, width
, height
및 style
).
canvas는 xhtml1의 일부가 아닙니다. html5를 사용하려면 html5 doctype을 사용하십시오. – Kaiido