• HTML5特性&&canvas


    1.HTML5是由W3C(万维网联盟,专注于XHTML 2.0)和WHATWG(专注于web表单和应用程序)共同合作的结果,2014年10月完成标准制定!

    主要设计目的:为了在移动设备上支持多媒体。

    2.HTML5新特性:(区分HTML)

    • 绘画canvas;
    • 用于媒介回放的video和audio元素;
    • 本地离线缓存localStorage长期缓存数据,浏览器关闭后数据不丢失;sessionStorage的数据浏览器关闭后自动删除;
    • 语义化更好的元素,如:header,nav,article,section,footer;
    • 新的表单控件,如:calendar,date,time,email,url,search;
    • 新技术:webworker,websocket,Geolocation(地理定位)。

    3.被HTML5抛弃的“孩子”(元素):

    • 纯表现的元素:basefont,big,center,font,s,strike,tt,u等(可以用CSS替代);
    • 对可用性产生负面性影响的元素:frameset,noframes,frame。

    4.HTML5支持:IE9以上,现代浏览器支持。

    • IE8,IE7,IE6可以通过document.createElement()进行创建新标签,然后添加标签默认样式。这样就可以让它们支持HTML5新标签;(以下代码在IETester下的IE 8和IE6测试通过)
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>hello HTML5</title>
     6     <script type="text/javascript">
     7         // 创建了test标签
     8         document.createElement('test');
     9     </script>
    10     <style type="text/css">
    11         test{
    12             display: block;
    13             background-color: orange;
    14             font-size: 26px;
    15             text-align: center;
    16         }
    17     </style>
    18 </head>
    19 <body>
    20     <test>hello "test" tag</test>
    21 </body>
    22 </html>
    View Code
    • 还有一种方法就是:引用html5shiv文件。(这是一种比较好的解决IE6-8不识别HTML5新元素方法,但是这些引入的新元素不能作为父元素包裹子元素;并且不能运用css样式╮(╯▽╰)╭,“万恶”的IE╮(╯▽╰)╭)
    1     <!--[if lt IE 9]>
    2     <script type="text/javascript" src="http://cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
    3     <![end if]-->
    View Code

    5.Canvas元素:

    注释/注意的地方都在代码里面了:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>hello canvas</title>
     6     
     7 </head>
     8 <body>
     9     <!-- 注意加载顺序,可简单理解为由上至下加载 -->
    10     <!-- 默认情况下,canvas没有边框和内容 -->
    11 
    12     <!-- 1.绘制矩形 -->
    13     <canvas id="canv" width="200px" height="200px" style="border:1px solid;">
    14     浏览器不支持canvas标签</canvas>
    15     <script type="text/javascript">
    16         var canv=document.getElementById('canv');
    17         var ctx=canv.getContext('2d');
    18         ctx.fillStyle='orange';
    19         // 绘制矩形,左上角坐标和右下角坐标
    20         ctx.fillRect(0,0,150,150);
    21     </script>
    22 
    23     <!-- 2.绘制直线 -->
    24     <canvas id="canv1" width="200px" height="200px" style="border:1px solid;">
    25     </canvas>
    26     <script type="text/javascript">
    27         var ctx1=document.getElementById('canv1').getContext('2d');
    28         // 绘制直线,moveTo:定义开始坐标;lineTo:定义结束坐标
    29         ctx1.strokeStyle="orange";//定义直线颜色
    30         ctx1.lineWidth="10";//定义直线宽度
    31         ctx1.moveTo(0,0);
    32         ctx1.lineTo(150,150);
    33         ctx1.stroke();
    34     </script>
    35     
    36     <!-- 3.绘制圆 -->
    37     <canvas id="canv2" width="200px" height="200px" style="border:1px solid;">浏览器不支持canvas标签
    38     </canvas>
    39     <script type="text/javascript">
    40         var ctx2=document.getElementById('canv2').getContext('2d');
    41         ctx2.beginPath();
    42         // arc(x,y,r,start,stop):圆心x,y坐标;半径;起始角度:与圆心平行的右端为0度;结束角度
    43         // Math.PI表示180度,顺时针画圆
    44         ctx2.arc(100,100,50,0,2*Math.PI);
    45         ctx2.stroke();
    46     </script>
    47 
    48     <!-- 4.绘制文本 -->
    49     <canvas id="canv3" width="200px" height="200px" style="border:1px solid">
    50     </canvas>
    51     
    52     <script type="text/javascript">
    53         var ctx3=document.getElementById('canv3').getContext('2d');
    54         ctx3.font="30px Arial";
    55         // fillText绘制的是实心的,strokeText绘制的是空心的
    56 
    57         // fillText(text,x,y,maxWidth):相对画布x,y输出text;
    58         // maxWidth:可选参数,text最大宽度
    59         ctx3.fillText("hello canvas",10,50);
    60         // ctx3.strokeText("hello canvas",10,50);
    61     </script>
    62 
    63     <!-- 5.canvas渐变 -->
    64 
    65     <!-- 渐变有两种方式:
    66     1.线性渐变:createLinearGradient(x1,y1,x2,y2);
    67     2.圆形渐变:createRadialGradient(x1,y1,r1,x2,y2,r2)
    68     使用两种以上的渐变颜色:addColorStop(change,color):change在0~1之间 -->
    69     <canvas id="canv4" width="200px" height="200px" style="border:1px solid">     </canvas>
    70     <script type="text/javascript">
    71         var ctx4=document.getElementById('canv4').getContext('2d');
    72         // var lGradient=ctx4.createLinearGradient(0,0,200,0);
    73         // lGradient.addColorStop(0.8,'white');
    74         // lGradient.addColorStop(0.5,'orange');
    75 
    76         // ctx4.fillStyle=lGradient;
    77 
    78         var rGradient=ctx4.createRadialGradient(50,50,10,75,80,50);
    79         rGradient.addColorStop(1,'gold');
    80         rGradient.addColorStop(0,'red');
    81         rGradient.addColorStop(0.3,'white');
    82         ctx4.fillStyle=rGradient;
    83         ctx4.fillRect(0,0,150,150);
    84     </script>
    85 
    86     <!-- 6.canvas放置图像:drawImage(img,x,y); -->
    87      <img src="test.jpg" alt=" picture for testing" width="150px" height="150px" id="test">
    88     <canvas id="canv5" width="200px" height="200px" style="border:1px solid;">     </canvas>
    89    
    90     <script type="text/javascript">
    91         var ctx5=document.getElementById('canv5').getContext('2d');
    92         var img=document.getElementById('test');
    93         img.onload=function(){
    94             ctx5.drawImage(img,5,5);
    95         }
    96     </script>
    97 
    98 </body>
    99 </html>
    View Code

     运行结果:

  • 相关阅读:
    如何正确设置数据库连接池的大小
    spring生命周期
    Spring高级进阶:BeanFactoryPostProcessor
    Spring Bean的生命周期(非常详细)
    表达式求值相关算法
    golang 命令行参数解析 hflag
    golang 标准命令行解析库 flag
    docker consul 环境搭建
    docker etcd 环境搭建
    mysql 事务
  • 原文地址:https://www.cnblogs.com/why-not-try/p/7859523.html
Copyright © 2020-2023  润新知