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 Grid布局教程之网格单元格布局
Dec 30 HTML / CSS
CSS3 Flex 弹性布局实例代码详解
Nov 01 HTML / CSS
详解css3中 text-fill-color属性
Jul 08 HTML / CSS
浅谈HTML5 defer和async的区别
Jun 07 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
Jun 11 HTML / CSS
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
Jan 30 HTML / CSS
html5设计原理(推荐收藏)
May 17 HTML / CSS
HTML5几个设计和修改的页面范例分享
Sep 29 HTML / CSS
HTML5标签大全
Nov 23 HTML / CSS
使用placeholder属性设置input文本框的提示信息
Feb 19 HTML / CSS
html5默认气泡修改的代码详解
Mar 13 HTML / CSS
AmazeUI 评论列表的实现示例
Aug 13 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 远程图片保存到本地的函数类
2008/12/08 PHP
PHP数据过滤的方法
2013/10/30 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
Django学习笔记之Class-Based-View
2017/02/15 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python排序算法实例代码
2017/08/10 Python
python的常用模块之collections模块详解
2018/12/06 Python
python如何制作英文字典
2019/06/25 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
python logging设置level失败的解决方法
2020/02/19 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
老师推荐信
2013/10/28 职场文书
红色故事演讲稿
2014/05/22 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
MySQL数据管理操作示例讲解
2022/12/24 MySQL