Canvas标签width属性和css的width属性

本篇只是一个渣渣写的笔记,要说的都在代码中的注释中,在我看来不求甚解的话没准根本不知道两者的区别更好

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>Canvas标签width属性和css的width属性</title>
        <style type="text/css">
            .mycanvas {
                border: 1px dashed red;
            }
            #three{
                width: 600px;
                height: 300px;
            }
            #four{
                width: 400px;
                height: 400px;
            }
        </style>
    </head>

    <body>
        <!--<canvas> 标签只有两个属性—— width和height-->
        <!--在css中设定宽高与在标签属性中设置宽高是不一样的-->
        <canvas id="one" class="mycanvas">your browser do not support canvas</canvas>
        <canvas id="two" class="mycanvas" height="300" width="300">your browser do not support canvas</canvas>
        <canvas id="three" class="mycanvas">your browser do not support canvas</canvas>
        <canvas id="four" class="mycanvas">your browser do not support canvas</canvas>
        <script>
            function cone() {
                //如果没有给canvas指定高宽,canvas默认高宽(或者说坐标属性)是300*150
                //所以这里是一条对角线
                var c = document.getElementById("one");
                var cv = c.getContext(‘2d‘);
                cv.moveTo(0, 0);
                cv.lineTo(300, 150);
                cv.stroke();
            };
            cone();
            function ctwo(){
                //如果在标签属性设置width和height则表示更改了canvas画布本身的坐标属性(!important 指不会拉伸canvas)
                //此处名为two的canvas宽高为300*300
                //这里画的一条线应还是对角线
                var c = document.getElementById("two");
                var cv = c.getContext(‘2d‘);
                cv.moveTo(0,0);
                cv.lineTo(300, 300);
                cv.stroke();
            }
            ctwo();
            function three(){
                //!important css中设定宽高只是设定了canvas本身这个dom元素的宽高,与画布本身坐标属性无关
                //画布本身坐标属性在标签属性中未生命所以应该还是300*150
                //这里css中按照比例扩大了一倍,只是把坐标本身从视觉上扩大一倍,最大坐标不变(为声明300*150)
                //所以这里仍未对角线
                var c = document.getElementById("three");
                var cv = c.getContext(‘2d‘);
                cv.moveTo(0,0);
                cv.lineTo(300, 150);
                cv.stroke();
            }
            three();
            function four(){
                //如果css和本身的坐标属性不成比例呢(可是为什么会有这种情况,不是自找麻烦么.)
                //坐标属性和dom宽高本身无关,所以这里应该还是对角线,但是是视觉错误的(坐标的单位长度不同)
                //应该说这个画布的横坐标最大还是300但是对应长度是400px,坐标的单位长度为400/300(px),纵坐标最大还是150但是对应长度为400px,坐标的单位长度为400/150(px)
                //看一下(100,100)就知道了
                var c = document.getElementById("four");
                var cv = c.getContext(‘2d‘);
                cv.moveTo(0,0);
                //此处应该还是对角线
                //cv.lineTo(300, 150);
                //数据上的对角线,视觉上应该是竖比横长
                cv.lineTo(100, 100);
                cv.stroke();

            }
            four();

            //个人总结:费那个劲干啥,直接不要管css中的数字。js写的时候只看标签内有没有width和height属性应该就是不会出错的

        </script>
    </body>

</html>
时间: 2024-10-12 23:59:16

Canvas标签width属性和css的width属性的相关文章

PC端变成手机端的时候,把特效去掉(把canvas标签去掉)

PC端变成手机端的时候,把特效去掉(把canvas标签去掉)<script> if (screen.width < 768){ $('canvas').remove(); }</script> /*if($('window').width()<768){ $('canvas').css('display','none'); }*/ jQuery这种方法获取不到

jQuery获取和操作元素的属性和CSS样式

本文学习如何使用jQuery获取和操作元素的属性和CSS样式. 元素属性和Dom属性 对于下面这样一个标签元素: <img id='img' src="1.jpg" alt='1' class="imgs"></img>  我们通常将id,src,alt,class称为属性,也即元素属性.但是,当浏览器对标签元素进行解析时,会将元素解析为Dom对象,相应的,元素属性也就解析为Dom属性. 元素属性和Dom属性只是在我们对其进行不同解析时的不同

jQuery的简单用法(jQuery的简介,选择器,属性和css,文档处理)

一.jQuery简介 1.1.  JS库 JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互客户端页面, 并且兼容各大浏览器. 1.2.  当前流行的 JavaScript 库有: ① jQuery ,最流行 ② EXT JS,2.0开始收费 ③ Prototype,对js扩展,框架开发. ④ Dojo ⑤ Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使

jQuery(六) jQuery修改class属性和CSS样式

jQuery修改class属性和CSS样式 class属性修改 类属性即class属性,规定类名. 用类选择器规定样式的时候,需要为元素指定类名,即class属性的值. 注意每个HTML元素只有一个class属性.但是class属性的值可以是多个名称,即可能包含一个词的列表,中间用空格分隔. 具体使用方法见:http://www.w3school.com.cn/css/css_selector_class.asp 用jQuery进行类名修改既可以用attr()方法修改”class”属性,也可以用

jQuery修改class属性和CSS样式

原文:jQuery修改class属性和CSS样式 jQuery修改class属性和CSS样式 class属性修改 类属性即class属性,规定类名. 用类选择器规定样式的时候,需要为元素指定类名,即class属性的值. 注意每个HTML元素只有一个class属性.但是class属性的值可以是多个名称,即可能包含一个词的列表,中间用空格分隔. 具体使用方法见:http://www.w3school.com.cn/css/css_selector_class.asp 用jQuery进行类名修改既可以

CSS的color属性并非只能用于文本显示

虽然CSS并不是一种很复杂的技术,但就算你是一个使用CSS多年的高手,仍然会有很多CSS用法/属性/属性值你从来没使用过,甚至从来没听说过. 对于CSS的color属性,相信所有Web开发人员都使用过.如果你并不是一个特别有经验的程序员,我相信你未必知道color属性除了能用在文本显示,还可以用作其它地方. 你可以先看一下下面的演示: HTML代码 <img alt="Example alt text" width="200" height="200

在canvas标签和style中定义width和height

在canvas标签中定义width.height跟在style中定义width.height是不同的.canvas标签的width和height是画布实际宽度和高度,就是在这个上面绘制图形.style的width和height是canvas画布在浏览器中被渲染的高度和宽度.如果canvas的width和height没指定或值不正确,就被设置成默认值(width:300px,height:150px).

canvas标签的width和height以及style.width和style.height的区别

其实这里已经说的很明白,通俗点说就是在canvas中定义width.height跟在style中定义width和height是不同的,canvas标签的width和height是画布实际宽度和高度,绘制的图形都是在这个上面.而style的width和height是canvas在浏览器中被渲染的高度和宽度.如果canvas的width和height没指定或值不正确,就被设置成默认值(width:300px,height:150px). 实例代码 <!DOCTYPE html><html&g

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc