首页 > 如何在Canvas上添加HTML元素呢?

如何在Canvas上添加HTML元素呢?

下面的代码无法再canvas上显示两个div,要如何做才能在canvas上显示html元素呢?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <style type="text/css">
        #box1{
            width: 100px;
            height: 100px;
            background: paleturquoise;
            position: absolute;
            left: 100px;
            z-index: 2;
        }
        #box2{
            width: 100px;
            height: 100px;
            background: palevioletred;
            position: absolute;
            left: 300px;
            z-index: 2;
        }
        #drawing{
            width: 500px;
            height: 500px;
            position: relative;
            background: transparent;
            z-index: 1;
        }
    </style>
    <body>
        <canvas id="drawing">
            <div id="box1">
                
            </div>
            <div id="box2">
                
            </div>
            
        </canvas>
    </body>
    <script type="text/javascript">
        
    </script>
</html>

该标签不支持任何内容标签插入,详细看看api


canvas里面不允许嵌套div,如果在里面嵌套了div,会被自动忽略。
如果想让div在canvas上面覆盖显示,可以将div放在canvas的同级,然后将div设置成position:absolute或fixed,通过left和top进行定位。


按照语法规定canvas里面是不能嵌套div的,要想把div放到里面,可以把div的position设为absolute:
<canvas></canvas>
<div style="position: absolute; left: 0px;top:40px;"></div>


你直接放里边肯定是不行的噻~不过既然是canvas,用js动态构建个再塞进去就行了。最近用Egret写微信上的小东西,最后加的二维码我就是这么处理的。

【热门文章】
【热门文章】