Spec-Zone.ru › HTML

: Элемент графического холста

Базовая поддержка Широко распространённая

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Используйте <canvas> с помощью API сценариев для холста или API WebGL для рисования графики и анимаций.

Атрибуты

Атрибуты этого элемента включают глобальные атрибуты.

height

Высота координатного пространства в пикселях CSS. По умолчанию 150.

moz-opaque Нестандартный Устаревший

Уведомляет холст о том, будет ли играть роль прозрачность. Если холст знает, что прозрачности нет, производительность рисования можно оптимизировать. Поддерживается только браузерами на основе Mozilla; используйте стандартизированный canvas.getContext('2d', { alpha: false }) вместо этого.

width

Ширина координатного пространства в пикселях CSS. По умолчанию 300.

Примечания по использованию

Альтернативный контент

Вы должны предоставить альтернативный контент внутри блока <canvas>. Этот контент будет отображаться в старых браузерах, которые не поддерживают холст, и в браузерах с отключенным JavaScript.

Закрывающий </canvas> тег

В отличие от элемента <img>, элемент <canvas> требует закрывающего тега (</canvas>).

Изменение размеров холста с помощью CSS по сравнению с HTML

Размер отображения холста можно изменить с помощью CSS, но в этом случае изображение масштабируется во время отрисовки, чтобы соответствовать стилизованному размеру, что может привести к искажению окончательного результата отрисовки графики.

Лучше указать размеры холста, задав атрибуты width и height непосредственно для элементов <canvas> — либо непосредственно в HTML, либо с помощью JavaScript.

Максимальный размер холста

Точный максимальный размер элемента <canvas> зависит от браузера и среды. Хотя в большинстве случаев максимальные размеры превышают 10 000 x 10 000 пикселей, устройства iOS ограничивают размер холста только 4096 x 4096 пикселями. См. пределы размера холста в разных браузерах и устройствах.

Примечание: Превышение максимальных размеров или области делает холст непригодным для использования — команды рисования не будут работать.

Использование внеэкранного холста

Холст можно отрисовать с помощью OffscreenCanvas API, где документ и холст развязаны. Преимущество заключается в том, что поток обработки потока задач может обрабатывать отрисовку холста, и основной поток вашего веб-приложения не блокируется операциями с холстом. Параллелизация работы обеспечит отзывчивость других элементов пользовательского интерфейса вашего веб-приложения даже при выполнении сложной графики на внеэкранном холсте. Более подробная информация доступна в документации OffscreenCanvas API.

Доступность

Альтернативный контент

Элемент <canvas> сам по себе представляет только растровое изображение и не содержит информации о нарисованных объектах. Содержимое холста недоступно для средств обеспечения доступности так, как это происходит с семантическим HTML. В целом, следует избегать использования холста на веб-сайте или в приложении, ориентированных на доступность. Следующие руководства могут помочь сделать его более доступным.

  • Сценарии использования доступности холста
  • Вопросы доступности элемента холста
  • Доступность HTML холста в Firefox 13 — by Steve Faulkner
  • Рекомендации по взаимодействию с элементами холста

Примеры

HTML

Этот фрагмент кода добавляет элемент холста в ваш HTML документ. Предоставлен резервный текст в случае, если браузер не может прочитать или отобразить холст.

html
<canvas width="120" height="120">
  An alternative text describing what your canvas displays.
</canvas>

JavaScript

Затем в коде JavaScript вызовите HTMLCanvasElement.getContext(), чтобы получить контекст рисования и начать рисование на холсте:

js
const canvas = document.querySelector("canvas");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "green";
// Add a rectangle at (10, 10) with size 100x100 pixels
ctx.fillRect(10, 10, 100, 100);

Результат

Техническое резюме

Категории содержимого Текстовое содержимое, фразовое содержимое, встроенное содержимое, содержимое, которое можно осязать.
Разрешенное содержимое Прозрачное, но без потомков интерактивного содержимого, кроме элементов <a>, элементов <button>, элементов <input> с атрибутом type, значением checkbox, radio, или button .
Пропуск тега Не допускается, обязательны как открывающий, так и закрывающий теги.
Разрешенные родительские элементы Любой элемент, принимающий фразовое содержимое.
Неявная роль ARIA Нет соответствующей роли
Разрешенные роли ARIA Любые
Интерфейс DOM HTMLCanvasElement

Спецификации

Спецификация
Стандарт HTML
# the-canvas-element

Совместимость с браузерами

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в IOS Samsung Internet WebView Android
canvas 1 12
1.5["Перед Firefox 5, ширина и высота холста были целыми числами со знаком, а не беззнаковыми целыми числами.", "Перед Firefox 6, элемент <canvas> с нулевой шириной или высотой отображался так, как будто у него были значения по умолчанию.", "Перед Firefox 12, если JavaScript был отключен, элемент <canvas> отображался вместо отображения содержимого резервного варианта в соответствии со спецификацией. С тех пор, резервный вариант отображается вместо него."]
9
2Хотя ранние версии браузера Apple Safari не требуют закрывающего тега, спецификация указывает, что он необходим, поэтому вы должны быть уверены, что включили его для наилучшей совместимости. Перед версией 2 Safari будет отображать содержимое резервного варианта наряду с самим холстом, если вы не используете CSS-хитрости для его маскировки.
18
4["Перед Firefox 5, ширина и высота холста были целыми числами со знаком, а не беззнаковыми целыми числами.", "Перед Firefox 6, элемент <canvas> с нулевой шириной или высотой отображался так, как будто у него были значения по умолчанию.", "Перед Firefox 12, если JavaScript был отключен, элемент <canvas> отображался вместо отображения содержимого резервного варианта в соответствии со спецификацией. С тех пор, резервный вариант отображается вместо него."]
10.1 1 1.0 37
height 1 12
1.5["Перед Firefox 5, ширина и высота холста были целыми числами со знаком, а не беззнаковыми целыми числами.", "Перед Firefox 6, элемент <canvas> с нулевой шириной или высотой отображался так, как будто у него были значения по умолчанию.", "Перед Firefox 12, если JavaScript был отключен, элемент <canvas> отображался вместо отображения содержимого резервного варианта в соответствии со спецификацией. С тех пор, резервный вариант отображается вместо него."]
9
2Хотя ранние версии браузера Apple Safari не требуют закрывающего тега, спецификация указывает, что он необходим, поэтому вы должны быть уверены, что включили его для наилучшей совместимости. Перед версией 2 Safari будет отображать содержимое резервного варианта наряду с самим холстом, если вы не используете CSS-хитрости для его маскировки.
18
4["Перед Firefox 5, ширина и высота холста были целыми числами со знаком, а не беззнаковыми целыми числами.", "Перед Firefox 6, элемент <canvas> с нулевой шириной или высотой отображался так, как будто у него были значения по умолчанию.", "Перед Firefox 12, если JavaScript был отключен, элемент <canvas> отображался вместо отображения содержимого резервного варианта в соответствии со спецификацией. С тех пор, резервный вариант отображается вместо него."]
10.1 1 1.0 37
moz-opaque Нет Нет 3.5 Нет Нет Нет 4 Нет Нет Нет Нет
width 1 12
1.5["Перед Firefox 5, ширина и высота холста были целыми числами со знаком, а не беззнаковыми целыми числами.", "Перед Firefox 6, элемент <canvas> с нулевой шириной или высотой отображался так, как будто у него были значения по умолчанию.", "Перед Firefox 12, если JavaScript был отключен, элемент <canvas> отображался вместо отображения содержимого резервного варианта в соответствии со спецификацией. С тех пор, резервный вариант отображается вместо него."]
9
2Хотя ранние версии браузера Apple Safari не требуют закрывающего тега, спецификация указывает, что он необходим, поэтому вы должны быть уверены, что включили его для наилучшей совместимости. Перед версией 2 Safari будет отображать содержимое резервного варианта наряду с самим холстом, если вы не используете CSS-хитрости для его маскировки.
18
4["Перед Firefox 5, ширина и высота холста были целыми числами со знаком, а не беззнаковыми целыми числами.", "Перед Firefox 6, элемент <canvas> с нулевой шириной или высотой отображался так, как будто у него были значения по умолчанию.", "Перед Firefox 12, если JavaScript был отключен, элемент <canvas> отображался вместо отображения содержимого резервного варианта в соответствии со спецификацией. С тех пор, резервный вариант отображается вместо него."]
10.1 1 1.0 37

См. также

  • API холста
  • Учебник по холсту
  • OffscreenCanvas
  • Справочник по холсту (2009)
  • Справочник по холсту (pdf) (2015)
  • Руководство по холсту HTML Safari от Apple (2013)
  • CanvasRenderingContext2D контекст 2D отрисовки для элемента холста от Apple.com
  • WebGL API
  • <img>
  • SVG
  • Использование HTML аудио и видео

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API