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 相关文章推荐
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
Feb 04 HTML / CSS
css3让div随鼠标移动而抖动起来
Feb 10 HTML / CSS
CSS3实现的炫酷菜单代码分享
Mar 12 HTML / CSS
CSS中越界问题的经典解决方案【推荐】
Apr 19 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
Mar 14 HTML / CSS
html5中localStorage本地存储的简单使用
Jun 16 HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
Nov 18 HTML / CSS
HTML5拍照和摄像机功能实战详解
Jan 24 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
Dec 23 HTML / CSS
Html5在手机端调用相机的方法实现
May 13 HTML / CSS
css height属性中的calc方法详解
Jun 03 HTML / CSS
纯CSS打字动画的实现示例
Aug 05 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 xfocus防注入资料
2008/04/27 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
微信支付开发订单查询实例
2016/07/12 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
python 基础教程之Map使用方法
2017/01/17 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
python实现简易动态时钟
2018/11/19 Python
用django设置session过期时间的方法解析
2019/08/05 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
保安员岗位职责
2013/11/17 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
走进敬老院活动总结
2014/07/10 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
单位考核鉴定意见
2015/06/05 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python