html - 基本 HTML 页面中的画布始终大小为 300x150。
问题描述
我已将问题简化为带有<canvas>
元素的基本 HTML 文档:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
body {
border: 1px solid #ff5500;
background-color: black;
}
canvas {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<canvas id="canv" style='width:1024px;height:768px'>
</canvas>
</body>
</html>
但是无论我设置width
和height
(使用像素、百分比或视口单位),无论我是否设置样式(例如style='width:1024px;height:768px'
),以及无论我调整浏览器窗口的大小,开发控制台总是将宽度 x 高度报告为 300x150。为什么会这样,我该如何处理?
这是开发控制台的输出:
var c = document.getElementById("canv");
undefined
c.style.width
"1024px"
c.style.height
"768px"
c.width
300
c.height
150
Chromium 和 Firefox 中都会发生相同的行为。
我已经搜索了 Stack Overflow 和一般的网络,发现了很多关于和之间的区别width
,clientWidth
以及关于 Fabric.js 的类似问题,但没有回答这个具体问题。
解决方案
我认为您所指的宽度和高度是html属性而不是css。
可以像这样修改它们;
<canvas width="1024" height="768" style="border:1px solid black;">
</canvas>
推荐阅读
- lisp - 用通用 lisp 编程语言将文件中的单词读入嵌套列表
- ansible - 如何指定要在 Ansible 剧本中使用的 Python 版本?
- python - 对 pandas 中的 groupby 函数感到好奇,如何为通用数据集编写 groupby?
- reactjs - 为什么 React 组件代码不会自动缩进?
- ruby - 了解 Ruby sort_by
- spring - Hibernate @LazyToOne(LazyToOneOption.NO_PROXY) @OneToOne(fetch = FetchType.LAZY) 总是急切地获取
- git - git可以用来在服务器之间传输大型二进制文件吗
- angular - Angular Material datepicker:如何为无效和必需的输入获取两个不同的验证错误
- java - 如何使用 MouseEvent?
- javascript - 如何在卡片标题和卡片文本中输入值