canvas需要在标签里直接定义宽高


Posted in HTML / CSS onDecember 17, 2014

以前用canvas画图时,都是直接在canvas标签里直接写上宽高,没有问题,但也没有探究过为什么宽高要直接写在canvas标签里,因为各个资料的例子上都是这么写的。今天王sir提出了一个问题:如果把宽高写在<style>里,看看会有什么不同。自己试了以下,果然有问题。

先看一下代码:


复制代码
代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>canvas</title>
<meta name="Keywords" content="">
<meta name="author" content="@my_programmer">
<style type="text/css">
body{margin:0;}
canvas{margin:20px;
/*width: 400px;
height: 300px;*/
}
</style>
</head>
<body onload="draw()">
<canvas id="canvas" width=400 height=300 style="border:1px solid #f00;"></canvas>
<script>
function draw() {
var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
context.beginPath();
context.moveTo(20,20);
context.lineTo(200,100);
context.lineWidth=5;
context.stroke();
}
</script>
</body>
</html>

1.宽:400;高:300;直接写在<canvas>里的效果:

canvas需要在标签里直接定义宽高

2、删除<canvas>里的宽高,宽:400;高:300;写在<style>里的效果:

canvas需要在标签里直接定义宽高

为什么两者的效果会不一样呢?

canvas跟其他标签一样,也可以通过css来定义样式。但这里需要注意的是:canvas的默认宽高为300px * 150px,在css中为canvas定义宽高,实际上把宽高为300px * 150px的画布进行了拉伸,如果在这样的情况下进行canvas绘图,你得到的图形可能就是变形的效果。所以,在canvas绘图时,应该在canvas标签里直接定义宽高。

HTML / CSS 相关文章推荐
深入解读CSS3中transform变换模型的渲染
May 27 HTML / CSS
深入CSS3 动画效果的总结详解
May 09 HTML / CSS
浅析CSS3 中的 transition,transform,translate之间区别和作用
Mar 26 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
Jun 22 HTML / CSS
Html5剪切板功能的实现代码
Jun 29 HTML / CSS
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
Apr 08 HTML / CSS
HTML5之语义标签介绍
Jul 07 HTML / CSS
html5是什么_动力节点Java学院整理
Jul 07 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
Dec 10 HTML / CSS
几款流行的HTML5 UI框架比较(小结)
Apr 08 HTML / CSS
HTML常用标签超详细整理
Mar 19 HTML / CSS
css让页脚保持在底部位置的四种方案
Jul 23 HTML / CSS
使用canvas绘制贝塞尔曲线
Dec 17 #HTML / CSS
使用canvas绘制超炫时钟
Dec 17 #HTML / CSS
24个canvas基础知识小结
Dec 17 #HTML / CSS
html5使用canvas绘制文字特效
Dec 15 #HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 #HTML / CSS
html5使用canvas绘制一张图片
Dec 15 #HTML / CSS
html5使用canvas画三角形
Dec 15 #HTML / CSS
You might like
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
mysql数据库差异比较的PHP代码
2012/02/05 PHP
php编程每天必学之表单验证
2016/03/01 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
python绘制多个曲线的折线图
2020/03/23 Python
Puppeteer使用示例详解
2019/06/20 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
自考毕业自我鉴定范文
2013/10/27 职场文书
教师专业理论水平的自我评价分享
2013/11/09 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
服务之星事迹材料
2014/05/03 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
党建工作汇报材料
2014/12/24 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
导游词之日本富士山
2020/01/06 职场文书