美文网首页JavaScript
Canvas 所遇到的宽高的问题

Canvas 所遇到的宽高的问题

作者: 至远方 | 来源:发表于2020-07-15 20:57 被阅读0次

Canvas 的默认宽高是 width: 300 height: 150 可以通过属性的方式设置,也可以在style样式中直接设置,但是这两种设置的方式显示的效果是不一样的,下面我们看下有哪些不一样。

直接加在属性

方法一

<canvas id="canvas" width="500" height="300" style="border:1px solid #d3d3d3;"></canvas>

<script>

    let canvas = document.querySelectorAll("#canvas")[0];

    let ctx = canvas.getContext('2d');

    ctx.moveTo(0, 0);

    ctx.lineTo(200, 150);

    ctx.stroke();

</script>

显示效果如图所示:

image

也可以这样加

方法二

   JavaScript

<canvas id="canvas" style="border:1px solid #d3d3d3;"></canvas>

<script>

    let canvas = document.querySelectorAll("#canvas")[0];

    canvas.width = "500";

    canvas.height = "300";

    let ctx = canvas.getContext('2d');

    ctx.moveTo(0, 0);

    ctx.lineTo(200, 150);

    ctx.stroke();

</script>
image

那么我们直接写在style样式中是怎样的效果呢

方法一


#canvas {

    width: 500px;

    height: 300px;

}

<canvas id="canvas" style="border:1px solid #d3d3d3;"></canvas>

<script>

    let canvas = document.querySelectorAll("#canvas")[0];

    let ctx = canvas.getContext('2d');

    ctx.moveTo(0, 0);

    ctx.lineTo(200, 150)

    ctx.stroke()

</script>

image

方法二

显示效果如上图所示

或者是直接在js代码中加样式,很明显写样式的效果有一种拉伸的感觉,为什么两者的效果会不一样呢?

canvas 标签的 width 和 height 是绘画区域实际宽度和高度,绘制的图形都是在这个上面。而 style 的 width 和 height 是 canvas 在浏览器中被渲染的高度和宽度,如果 canvas 标签中没有定义 width 和 height 时,默认会给宽 300 高 150,所以就出现了拉伸的效果,不想用默认的宽高的话,尽量在标签中写上宽高的属性

其它:canvas 的width 和 height 也不能用百分比表示,canvas 会将百分值当成数值显示

相关文章

  • Canvas 所遇到的宽高的问题

    Canvas 的默认宽高是 width: 300 height: 150 可以通过属性的方式设置,也可以在styl...

  • 设置宽高的问题

    刚学canvas,今天在 设置宽高时遇到问题一直以为在 中设置宽高和直接设置 的宽高没有什么区别,进行了一番尝试...

  • Canvas

    一、初识canvas canvas画布默认宽高是 300 * 150 px canvas宽高要使用canvas标签...

  • canvas

    注意: 1、canvas不适用css设置宽高,使用自身的width和height设置宽高; 2、canvas和pr...

  • canvas 的基本用法

    一、元素 1、写法: 2、宽高设置 在使用 元素时必须设置宽度和高...

  • H5 canvas

    canvas基本标签 < /canvas>宽高写在内部跟样式有区别的(样式设置-画出的图形宽高改变,内部设置-画出...

  • canvas开发项目总结

    canvas绘图 对canvas设置宽高,只能通过属性设置。使用css设置宽高会让canvas变形 开发手机端页面...

  • canvas 初探 api 整理 I

    canvas API 整理 I canvas canvas 的默认大小为300像素×150像素(宽×高,像素的单位...

  • HTML5Three

    canvas:默认的canvas标签大小是300*150默认的颜色是透明,设置宽高必须通过canvas标签的wid...

  • HTML5:canvas

    1.canvas是inline-block元素,canvas和 img相同,不建议用css控制canvas初始宽高...

网友评论

    本文标题:Canvas 所遇到的宽高的问题

    本文链接:https://www.haomeiwen.com/subject/itzjhktx.html