Ответ 1
Конечно - вы можете поместить HTML "сверху" на холст, используя абсолютное позиционирование.
http://jsfiddle.net/stevendwood/5sSWj/
У вас не может быть HTML "в" холсте. Но предположим, что холст и HTML используют одни и те же координаты, тогда вы можете использовать верхний и левый элементы для позиционирования элементов на холсте, используя те же смещения, которые вы рисуете с помощью.
#picture {
position: relative;
}
.blob, .blob1, .blob2 {
position: absolute;
width: 30px;
height: 30px;
border-radius: 20px;
background-color: green;
border: 2px solid #ccc;
}
var canvas = document.querySelector('canvas'),
context = canvas.getContext('2d');
context.beginPath();
context.moveTo(100, 150);
context.lineTo(350, 50);
context.stroke();
И HTML...
<div id="picture">
<canvas id="canvas" width="500" height="500">
</canvas>
<div class="blob1"></div>
<div class="blob2"></div>
</div>
В этом примере выборки вы можете соединить два позиционированных divs с линией, нарисованной на элементе canvas, который находится под ними.