Я возился с HTML5 / Javascript и нашел что-то, чего я не понимаю.
Я пытался написать некоторые базовые процедуры для работы с холстом HTML5 и обнаружил, что функция drawImage не былаНичего не рисую.Чтобы понять, что это был мой код, я использовал код из существующего учебника, а именно HTML5 Canvas Image Tutorial .Когда я включил в него код Javascript извне (то есть в виде отдельного файла), я все еще не видел свое изображение, нарисованное на холсте.
Оттуда я скопировал полный источник, найденный здесь , дословно, и это сработало.Я начал возиться, чтобы выяснить, почему это работает, а мой нет.
Я обнаружил, что разница в том, что дословный код определяет ширину и высоту встроенного холста.Я предпочитаю отделить стили от HTML и CSS.Код работал, если я делал:
<canvas id = "myCanvas" width = "600" height = "400"></canvas>
, но не работал, если я определял ширину и высоту холста во внешней таблице стилей CSS.
Я определил, что одной из моих проблем было то, чтоЯ включил таблицу стилей после файла Javascript;до этого мое изображение вообще не появлялось, даже после подтверждения с помощью функции alert (), что код внутри обработчика загрузки изображения запускался.После изменения порядка, в котором были включены файлы, мое изображение появилось, но было странно масштабировано, как если бы CSS-стиль игнорировался.
Почему это так?Я что-то упустил в отношении порядка, в котором свойства холста определяются через CSS?Почему Javascript игнорирует стилизацию CSS в этом случае?Если это вообще актуально, я пробовал это в последних версиях Chrome и Firefox.