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 相关文章推荐
css动画效果之animation的常用样式
Mar 09 HTML / CSS
关于CSS Tooltips(鼠标经过时显示)的效果
Apr 10 HTML / CSS
利用CSS3实现圆角的outline效果的教程
Jun 05 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
Jul 23 HTML / CSS
HTML5实践-图片设置成灰度图
Nov 12 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
Jan 31 HTML / CSS
使用HTML5 Canvas为图片填充颜色和纹理的教程
Mar 21 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
Sep 11 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
Sep 14 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
Jun 09 HTML / CSS
HTML5单选框、复选框、下拉菜单、文本域的实现代码
Dec 01 HTML / CSS
使用canvas实现雪花飘动效果的示例代码
Mar 30 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
php设计模式 Adapter(适配器模式)
2011/06/26 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
python发布模块的步骤分享
2014/02/21 Python
Python读写ini文件的方法
2015/05/28 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
网络专业学生个人的自我评价
2013/12/16 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
《雨点》教学反思
2014/02/12 职场文书
社区义诊活动总结
2014/04/30 职场文书
党支部综合考察材料
2014/05/19 职场文书
煤矿安全协议书
2014/08/20 职场文书
采购员岗位职责范本
2015/04/07 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL