在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 有趣,關(guān)于動態(tài)創(chuàng)建canvas的問題?

有趣,關(guān)于動態(tài)創(chuàng)建canvas的問題?

使用js創(chuàng)建canvas發(fā)現(xiàn)只有開始標(biāo)簽,沒有閉合標(biāo)簽,剛開始我以為canvas是可以省略閉合標(biāo)簽的自閉合標(biāo)簽,但mdn上的解釋卻是:

</canvas> 標(biāo)簽不可省
與 <img> 元素不同,<canvas>
元素需要結(jié)束標(biāo)簽(</canvas>)。如果結(jié)束標(biāo)簽不存在,則文檔的其余部分會被認(rèn)為是替代內(nèi)容,將不會顯示出來。
var canvas = document.createElement("canvas");
document.body.appendChild(canvas);
//這樣創(chuàng)建出來卻沒有閉合標(biāo)簽,它不像創(chuàng)建div或者span這種一樣會自動成對。

這是什么情況呢?

回答
編輯回答
溫衫

是因為你沒有理解mdn里面說的是什么意思。

與 <img> 元素不同,<canvas> 元素需要結(jié)束標(biāo)簽(</canvas>)。如果結(jié)束標(biāo)簽不存在,則文檔的其余部分會被認(rèn)為是替代內(nèi)容,將不會顯示出來。

所謂的替代元素,是指當(dāng)canvas不可用時,替代canvas的元素。也就是說如果不帶結(jié)束標(biāo)簽,那么img標(biāo)簽及之后的所有元素都會被認(rèn)為是替代元素,將不會被顯示。

<canvas id="clock" width="150" height="150">
  <img src="images/clock.png" width="150" height="150" alt=""/>
</canvas>

如上,如果canvas不受瀏覽器支持,那么在這里顯示的就是一個img標(biāo)簽。

你可以通過

var canvas = document.createElement("canvas");
var img = document.createElement("img");
canvas.appendChild(img);
document.body.appendChild(canvas);

來達(dá)到如上目的。

還有一個更有趣的點。

var canvas = document.createElement("canvas");
console.log(canvas.outerHTML)//<canvas></canvas>
2017年9月29日 17:42