Размещение в

#html #canvas

#HTML #холст

Вопрос:

Я беру div внутри canvas элемента, подобного следующему:

 <canvas>
    <div></div>
</canvas>
  

Здесь оба они имеют высоту и ширину. Но здесь я не вижу div !

Разве невозможно использовать div or p внутри canvas ?

Ответ №1:

Вы не можете размещать элементы внутри canvas (и отображать оба элемента); они отображаются только в том случае, если браузер не понимает элемент canvas.

Если вы хотите разместить элементы в той же области, что и холст, вот один из методов (среди многих), который позволит вам это сделать:

HTML

 <div id="canvas-wrap">
  <canvas width="800" height="600"></canvas>
  <div id="overlay"></div>
</div>
  

CSS

 #canvas-wrap { position:relative } /* Make this a positioned parent */
#overlay     { position:absolute; top:20px; left:30px; }
  

Вот еще один метод, который позволяет содержимому div нормально перемещаться и превращает холст в фон для содержимого:

CSS

 #canvas-wrap { position:relative; width:800px; height:600px }
#canvas-wrap canvas { position:absolute; top:0; left:0; z-index:0 }
  

Комментарии:

1. @BharatPatil Никого не волнует IE9. Доля рынка ниже 3%. Это составляет 3% только от версий IE, поэтому, если вы считаете среди всех браузеров, это еще меньше.

2. Год спустя, согласно netmarketshare.com/… На IE9 приходится 6,67% от общей доли рынка настольных компьютеров.

3. Срок службы IE8, 9 и 10 истек в январе 2016 года, что означает, что Microsoft не поддерживает их, кроме как по специальным лицензиям с расширенным сроком службы, и нет исправлений для системы безопасности. В конце 2018 года вы, вероятно, сможете игнорировать их, если только вы не работаете на предприятии, которое, как вы знаете, все еще имеет их. IE11, конечно, все еще жив и работает. microsoft.com/en-gb/windowsforbusiness/end-of-ie-support