正如評論中所說,使用HTML5的文檔類型(<!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文檔類型 – Kaiido