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 相关文章推荐
HTML5如何适配 iPhone IOS 底部黑条
Mar 09 HTML / CSS
CSS3 选择器 伪类选择器介绍
Jan 21 HTML / CSS
css3隔行变换色实现示例
Feb 19 HTML / CSS
用CSS3实现无限循环的无缝滚动的示例代码
Nov 01 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
Jul 10 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
Apr 10 HTML / CSS
HTML5的革新 结构之美
Jun 20 HTML / CSS
html5 svg 中元素点击事件添加方法
Jan 16 HTML / CSS
html5是什么_动力节点Java学院整理
Jul 07 HTML / CSS
HTML5添加禁止缩放功能
Nov 03 HTML / CSS
HTML5 3D书本翻页动画的实现示例
Aug 28 HTML / CSS
html svg生成环形进度条的实现方法
Sep 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
解析php中获取系统信息的方法
2013/06/25 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
python和ruby,我选谁?
2017/09/13 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Python 读写文件的操作代码
2018/09/20 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
python3 实现调用串口功能
2019/12/26 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
什么是GWT的Module
2013/01/20 面试题
开工典礼策划方案
2014/05/23 职场文书
2014年护理部工作总结
2014/11/14 职场文书
销售业务员岗位职责
2015/02/13 职场文书
2016春节慰问信范文
2015/03/25 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
JavaScript函数柯里化
2021/11/07 Javascript
python中filter,map,reduce的作用
2022/06/10 Python