HTML5 Canvas искажен?

Я подумала, что для развлечения я бы посмотрела на холст. Казалось, довольно просто нарисовать прямоугольник, поэтому я скопировал пример с сайта разработчиков Mozilla. Вы можете увидеть это здесь: http://jsfiddle.net/Wolfy87/DZBwp/

Как видите, оно искажено. У кого-нибудь есть какие-либо идеи? Я устанавливаю тот же х / у и ту же ширину / высоту. Это должна быть коробка, верно?

3 ответа

Решение

Исправил это сам, мне пришлось устанавливать ширину и высоту с помощью тега, а не CSS. Счастливое предположение.

<canvas width='400' height='300'></canvas>

Canvas работает как тег изображения

Холст работает как изображение, имеет ширину и высоту.

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

<canvas width="400" height="400" />

CSS

Когда вы устанавливаете ширину с помощью CSS, высота также будет изменяться, чтобы поддерживать пропорции, как изображение. Вы можете установить ширину равной 100%, и холст заполнит контейнер.

canvas { 
  width:100% 
}

Если вы установите ширину и высоту, холст будет растянут в соответствии с выделенным пространством, как изображение.

Значения по умолчанию

Ширина и высота холста по умолчанию - 300x150, соотношение 2/1.

У меня была та же проблема, но я смог ее решить и включить теги высоты и ширины в свой css, но я не смог использовать единицу измерения "px" или "%" для высоты или ширины.

canvas#my-id{
    width:400;
    height:300;
}

Не важно, используете ли вы тег html, css или установите его с помощью javascript/jquery и т. Д.

Другие вопросы по тегам