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实现折角效果实例源码
Sep 28 HTML / CSS
浅谈CSS3鼠标移入图片动态提示效果(transform)
Nov 06 HTML / CSS
CSS3实现网站商品展示效果图
Jan 18 HTML / CSS
详解Html5原生拖拽操作
Jan 12 HTML / CSS
HTML5 实战PHP之Web页面表单设计
Oct 09 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
Dec 17 HTML / CSS
使用CSS实现弹性视频html5案例实践
Dec 26 HTML / CSS
浅谈html5增强的页面元素
Jun 14 HTML / CSS
HTML5不支持frameset的两种解决方法
Nov 14 HTML / CSS
HTML5+css3:3D旋转木马效果相册
Jan 03 HTML / CSS
html form表单基础入门案例讲解
Jul 15 HTML / CSS
使用CSS实现音波加载效果
May 07 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写的小东西
2006/12/06 PHP
php基础知识:控制结构
2006/12/13 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
php下实现折线图效果的代码
2007/04/28 PHP
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
JS打印组合功能
2016/08/04 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
django 发送手机验证码的示例代码
2018/04/25 Python
python 自定义装饰器实例详解
2019/07/20 Python
python中几种自动微分库解析
2019/08/29 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
python re模块和正则表达式
2021/03/24 Python
初中升旗仪式演讲稿
2014/05/08 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
庆祝儿童节标语
2014/10/09 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书