h5考前复习

来源:互联网 发布:nba2kol数据更新吧 编辑:程序博客网 时间:2024/04/27 16:52
  1. HTML 5 ≈ HTML+CSS 3+Javascript+API

  2. h5和h4的区别
    1、DOCTYPE声明 HTML4的声明:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> HTML5的声明: <!DOCTYPE html>
    2、指定字符编码HTML4: <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> HTML5: <meta charset="UTF-8">,两种方法都有效

  3. 多媒体API h5支持的文件类型
    <video> 标记定义一个视频
    <audio> 标记定义音频内容
    <source> 标记定义媒体资源

< video  controls="controls"  width="300"><source src="move.ogg" type="video/ogg" ><source src="move.mp4" type="video/mp4" >您的浏览器暂不支持video标签。播放视频</ video >

HTML5支持的视频格式:
Ogg =带有Theora视频编码+Vorbis音频编码的Ogg文件
支持的浏览器:F、C、O
MEPG4=带有H.264视频编码+AAC音频编码的MPEG4文件
支持的浏览器: S、C
WebM=带有VP8视频编码+Vorbis音频编码的WebM格式 支持的浏览器: I、F、C、O
HTML5支持的音频格式:
Ogg 免费 支持的浏览器:C、F、O
MP3 收费 支持的浏览器: I、C、S
Wav 收费 支持的浏览器: F、O、S

  1. 可编辑文本框
<input> <textarea>
  1. form表单内的所有属性
    我整理的form表单的内容

    Datalist标签配合option标签实现的自动填充表单功能

    <input type="search" name="move" list="search" ><datalist id="search" >    <option>黑老师的由来</option>    <option>男人缘何肾虚</option>    <option>佳佳婕婕不得不说的故事</option></datalist>

    output(form中指定输出值)

    <form oninput="res.value=no1.value*no2.value“ >
    <input type="text" name="no1">
    <input type="text" name="no2">
    <output name="res"></output>
    </form>

  2. history API
    window.history.back() window.history.forward() window.history.go()
    HTML 5提供了两个新方法:1、history.pushState(); 2、history.replaceState();
    pushState()是在history栈中添加一个新的条目,replaceState()是替换当前的记录值。
    pushState()和replaceState()参数一样,参数说明如下:
    1、state:存储JSON字符串,可以用在popstate事件中。
    2、title:现在大多数浏览器不支持或者忽略这个参数,最好用null代替
    3、url:任意有效的URL,用于更新浏览器的地址栏,并不在乎URL是否已经存在地址列表中。更重要的是,它不会重新加载页面。

  3. 浏览器上存储数据 localstorage sessionstorage
    留言板基于localstorage
    sessionStorage 和 localStorage 就一个不同的地方, sessionStorage数据的存储仅特定于某个会话中,也就是说数据只保持到浏览器关闭,当浏览器关闭后重新打开这个页面时, 之前的存储已经被清除。而 localStorage 是一个持久化的存储,它并不局限于会话。
    getItem()和setItem(),清除键值对使用removeItem()。如果希望一次性清除所有的键值对,可以使用clear()。另外,HTML5还提供了一个key()方法,可以在不知道有哪些键值的时候使用,

  4. h5中的布局

    1. 多栏布局 可以解决用position和float布局时高度不一致的问题
      多栏布局中每栏的宽度都一样
      • column-count div内的栏目数
      • column-width 设置每个栏目的宽度 或者直接设置div的宽度(多个栏目的总宽度)
      • column-cap 设置多栏之间的间隔距离
      • column-rule 在栏与栏之间添加间隔线
    2. 盒布局 通过box属性来实现
      盒布局需要加前缀 在Firefox中是 -moz-box 在Safari Chrome Opera中是 -webkit-box 在外层的父元素中使用display: -moz-box;
    3. 弹性盒布局(flex布局)http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
      • order 改变元素的显示顺序
      • flex-directon: row row-reverse column column-severse改变排列方向,用flex布局时,高度宽度不指定的话可以自适应父元素
      • 元素中的flex属性值,决定元素的大小,但是不是倍数关系
      • flex-wrap 默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。flex-wrap: nowrap | wrap | wrap-reverse;
      • flex-grow 属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
      • flex-shrink 属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
  5. 哪些浏览器支持HTML5
    IE8及以下浏览器不支持
    Opera Chrome Safari Firefox都支持

  6. HTML5支持哪些动画效果

    • canvas
    • css3中的animations
      @keyframes 关键帧集合名 {创建关键帧的代码}
      animation: animation-name(keyframe的名称) animation-duration(动画的执行时长) animation-timing-function(动画的执行方式) animation-delay(延迟多少秒后开始执行) animation-iteration(动画执行的次数 infinite(无限次))
      animation-direction(动画的执行方向)
    • css3中的transitions
      transition: property(目标属性) duration(执行时长) timing-function(动画的执行方式)
      transition-delay 多久后执行
      可以同时执行多个动画
  7. canvas画长方形正方形和圆
    https://wine1.github.io/2017/11/15/html5-canvas/
    http://www.runoob.com/html/html5-canvas.html

  8. 密码设置为不可见
    <input type="password" value="123456">这样会显示6个小圆点

  9. 关于button的设置
    HTML 5 中的新属性:autofocus, form, formaction, formenctype, formmethod, formnovalidate 以及 formtarget。
    http://www.w3school.com.cn/html5/html5_button.asp

  10. 样式表的用法
    (1).将样式表加入到HTML文件行中 <标签名称 style=”样式属性:属性值;样式属性:属性值…”>
    (2).将样式表嵌入到HTML文件的文档头中
    (3).将一个外部样式表链接到HTML文件上

  11. h5中类似canvas的东西SVG
    http://blog.csdn.net/dylanqrr/article/details/77530457

  12. border-image
    border-image: url() 上边距 右边距 下边距 左边距/边框宽度 显示方法
    显示方法:repeat stretch
    四条边都可以单独设定图片宽度之类的

  13. border-radius
    椭圆/圆 border-radius:50%;
    子弹头 border-radius: 0 50% 50% 0;
    半圆图
    width: 48px;
    height: 96px;
    border: 2px solid #000;
    border-width: 2px 50px 2px 2px;
    border-radius: 50%;

  14. 给图片加倒影 -webkit-box-reflect: below(above left right) 10px;

  15. canvas画时钟

    <!DOCTYPE html>    <html>        <head>            <meta charset="UTF-8">            <title>画时钟</title>        </head>        <body onload="draw('canvas')">            <canvas id="canvas" width="400px" height="400px" border:></canvas>        </body>     <script>        var dom=document.getElementById('canvas');        var cxt=dom.getContext("2d");        var width=cxt.canvas.width;        var height=cxt.canvas.height;        var r=width/2;        function drawBackground(){          cxt.save();          cxt.translate(r,r);          cxt.beginPath();          cxt.lineWidth=10;          cxt.arc(0,0,r-5,0,2*Math.PI,false);          cxt.stroke();          cxt.font="18px Arial";          cxt.textAlign='center'          cxt.textBaseline='middle'          var hourNums=[3,4,5,6,7,8,9,10,11,12,1,2];          hourNums.forEach(function(number,i){            var rad=2*Math.PI/12*i;            var x=Math.cos(rad)*(r-30);            var y=Math.sin(rad)*(r-30);            cxt.fillText(number,x,y);          });          for(var i=0;i<60;i++){            var rad=2*Math.PI/60*i;            var x=Math.cos(rad)*(r-18);            var y=Math.sin(rad)*(r-18);            cxt.beginPath();            if(i % 5===0){              cxt.fillStyle="#000"              cxt.arc(x,y,2,0,2*Math.PI,false);            }            else{              cxt.fillStyle="#ccc"              cxt.arc(x,y,2,0,2*Math.PI,false);            }            cxt.fill();           }        }        function drawHour(hour,minute){          cxt.save();          cxt.beginPath();          var rad=2*Math.PI/12*hour;          var mrad=2*Math.PI/12/60*minute          cxt.rotate(rad+mrad);          cxt.lineWidth=6;          cxt.lineCap='round'          cxt.moveTo(0,10);          cxt.lineTo(0,-r/2);          cxt.stroke();          cxt.restore();        }        function drawMinute(minute){          cxt.save();          cxt.beginPath();          var rad=2*Math.PI/60*minute;          cxt.rotate(rad);          cxt.lineWidth=3;          cxt.lineCap='round'          cxt.moveTo(0,10);          cxt.lineTo(0,-r+30);          cxt.stroke();          cxt.restore();        }        function drawSecond(second){          cxt.save();          cxt.beginPath();          cxt.fillStyle='#c14543'          var rad=2*Math.PI/60*second;          cxt.rotate(rad);            cxt.moveTo(-2,20);          cxt.lineTo(2,20);          cxt.lineTo(1,-r+18);          cxt.lineTo(-1,-r+18);          cxt.fill();          cxt.restore();        }        function drawDot(){          cxt.beginPath();          cxt.fillStyle='#fff'          cxt.arc(0,0,3,0,2*Math.PI,false);          cxt.fill();        }        function draw(){          cxt.clearRect(0,0,width,height);          var now=new Date();          var hour=now.getHours();          var minute=now.getMinutes();          var second=now.getSeconds();          drawBackground();          drawHour(hour,minute);          drawMinute(minute);          drawSecond(second);          drawDot();          cxt.restore();        }        draw();        setInterval(draw,1000);    </script>    </html>
  1. h5做简易留言板
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>留言本</title>    <link rel="stylesheet" type="text/css" href="">    <script type="text/javascript"></script></head><body>    <div id="box">        <h1>web留言板</h1>        <textarea id="memo" cols="80" rows="10"></textarea><br>        <input type="button" name="button" value="增加" onclick="saveStorage('memo');">        <input type="button" name="button" value="初始化" onclick="clearStorage('msg');"><hr>        <p id="msg"></p>    </div><!--     <style type="text/css">        #box {            background-image:  url('img/8922136.jpg') ;            width: 800px;            min-height: 500px;        }        textarea {            border-radius: 10px;            position: relative;            left: 100px;        }        span{            float: right;        }        li{            list-style: none;            font-size: 16px;            margin-right: 50px;            line-height: 20px;        }        input{            background-color: grey;            border: 1px solid grey;            border-radius: 3px;            height: 30px;            width: 80px;            margin-left: 200px;        }    </style> -->    <script type="text/javascript">        function saveStorage(id) {            var data = document.getElementById(id).value;            var time = new Date().getTime();//用时间做键值,就可以解决键值不能重复的问题             window.localStorage.setItem(time, data);            loadStorage('msg');        }        function loadStorage(id) {            var result = '<ul>';            for(var i = 0; i < window.localStorage.length; i++) {                var key = window.localStorage.key(i);                var value = window.localStorage.getItem(key);                var date = new Date();                date.setTime(key);                 var dateStr = date.toGMTString();                result += '<li>' + value + '<span>' + dateStr + '</span></li>';            }            result += '</ul>';            var target = document.getElementById(id);            target.innerHTML = result;        }        function clearStorage() {            window.localStorage.clear();            loadStorage('msg');        }    </script></body></html>