亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有趣,關于動態創建canvas的問題?

有趣,關于動態創建canvas的問題?

慕田峪7331174 2019-02-27 13:10:35
使用js創建canvas發現只有開始標簽,沒有閉合標簽,剛開始我以為canvas是可以省略閉合標簽的自閉合標簽,但mdn上的解釋卻是:</canvas> 標簽不可省與 <img> 元素不同,<canvas>元素需要結束標簽(</canvas>)。如果結束標簽不存在,則文檔的其余部分會被認為是替代內容,將不會顯示出來。var canvas = document.createElement("canvas");document.body.appendChild(canvas);//這樣創建出來卻沒有閉合標簽,它不像創建div或者span這種一樣會自動成對。這是什么情況呢?
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

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


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

所謂的替代元素,是指當canvas不可用時,替代canvas的元素。也就是說如果不帶結束標簽,那么img標簽及之后的所有元素都會被認為是替代元素,將不會被顯示。


<canvas id="clock" width="150" height="150">

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

</canvas>

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


你可以通過


var canvas = document.createElement("canvas");

var img = document.createElement("img");

canvas.appendChild(img);

document.body.appendChild(canvas);

來達到如上目的。


還有一個更有趣的點。


var canvas = document.createElement("canvas");

console.log(canvas.outerHTML)//<canvas></canvas>


查看完整回答
反對 回復 2019-03-02
  • 1 回答
  • 0 關注
  • 694 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號