问答
1. 不管是招聘还是聊天经常能听到 h5开发,它指的是什么?和 HTML5有什么关系? 百度 h5 qq H5
H5主要值的是移动端应用的页面开发,例如微信内的宣传活动页面;
HTML5是W3C发布的关于HTML的最新标准,H5可以说是HTML5的具体应用,当然H5所使用到的技术有可能不仅仅是HTML5;
2. HTML5是什么?有哪些新特性?有哪些新增标签?如何让低版本的 IE 支持 HTML5新标签
2.1 HTML5是什么
HTML5是HTML标准的最新演进版本,包含两种含义:
- 它是包含新元素、属性和行为的HTML语言的新版本;
- 一系列使得网站和应用更加多样和强大的技术
2.2有哪些新特征
基于HTML5的新增功能,可以将其归类为以下几个部分:
- 语义:精确描述文档内容;
- 连通性:与服务器通信的创新方法;
- 离线 & 存储:客户端存储数据和离线高效运行;
- 多媒体:让音频和视频在所有Web中成为第一等公民;
- 2D/3D绘图 & 效果:提供更宽泛的展示选择;
- 性能和集成:提供更快的性能优化和硬件的利用;
- 设备访问:允许不同输入和输出设备的利用;
- 样式:让开发者撰写更复杂的主题
2.3 新增的标签
- 语义类标签
<section>:指定独立的主体内容,用于生成文档节段并计入大纲;
//以下新标签生成节段但不计入大纲
<header>:头部分节便签,定义页眉
<nav>:导航分节标签;
<aside>:侧边栏;
<article>:引用他人的文章的节段;
<footer>:脚部分节标签,定义页脚;
//以下标签属于分节根,分节根是拥有自己大纲的HTML元素,但是大纲内的节段和标题相对于其上级等同于不存在
<details>
<fieldset>
<figure>:规定独立的流内容;
<figcaption>:规定<figure>的标题;
//一些新增的语义元素
<details>:规定了用户可见的或者隐藏的需求的补充细节;
<summary>: 为details元素定义一个可见的标题。 当用户点击标题时会显示出详细信息;
<embed>:标签定义了一个容器,用来嵌入外部应用或者互动程序(插件);
<meter>:标签定义度量衡,仅用于已知最大和最小值的度量;
<progress>:定义运行中的任务进度(进程);
<ruby>:标签定义ruby注释(中文注音或字符);
- 多媒体标签
<audio>
<vedio>
//两种引入方式
<audio id='audio' src="http://192.168.1.104:8080/down%20by%20the%20salley%20garden.mp3#t=10,30" controls loop preload='auto'></audio>
<vedio>
<source src='foo.ogg' type='vedio/ogg'>
<source src='bar.mp4' type='vedio/mp4'>
</vedio>
//下面是多媒体标签的可选属性
width&height:设置宽高;
controls:显示控件;
autoplay:自动播放;
loop:循环播放;
muted:静音;
preload:auto|metadata|none用于缓冲资源;
//设定标记播放范围:
可在多媒体标签的引入资源的url上附加#制定媒体片段:
http://foo.com/video.ogg#t=10,20:
指定视频播放范围为从第10秒到第20秒;
http://foo.com/video.ogg#t=,10.5:
指定视频从开始播放到第10.5秒;
http://foo.com/video.ogg#t=,02:00:00
指定视频从开始播放到两小时;
http://foo.com/video.ogg#t=60
指定视频从第60秒播放到结束;
- 2D或3D图像标签
<canvas>:canvas是一个可以使用脚本在其画布上绘制图形的HTML元素,它可用于制作图形、图像或动画。
关于canvas的解读,详见基于Canvas的动画基本原理与数理分析
2.4让低版本的IE支持HTML5新标签
利用html5shiv.js解决低版本IE不支持HTML5新标签的问题;
<head>
<!--[if lt IE 9]>
<script src='http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js'></script>
<![endif]-->
</head>
3. input 有哪些新增类型?
3.1 input的新类型
<input type="color">
<br>
<input type="date">
<br>
<input type="time">
<br>
<input type="month">
<br>
<input type="week">
<br>
<input type="email"> <br>
<input type="number"> <br>
<input type="range" min='1' max='10' step='1' value=2><br>
<input type="search">
<br>
<input type="tel">
<br>
<input type="url">
3.2 HTML5表单的新属性
form的新属性:
autocomplete:form域拥有自动完成功能
novalidate:规定提交表单时不应该验证form域
<form action="demo-form.php" autocomplete="on" novalidate>
First name:<input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
E-mail: <input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>
----------------------------------------
input的新属性
autocomplete & novalidate
autofocus:自动聚焦
form:规定输入域所属的表单
formaction:定义了表单提交的方式
formmethod:描述了 <input> 元素在表单提交时无需被验证
formnovalidate:描述了 <input> 元素在表单提交时无需被验证
formtarget:指定一个名称或一个关键字来指明表单提交数据接收后的展示
pattern:描述了一个正则表达式用于验证 <input> 元素的值
placeholder:提供一种提示(hint),描述输入域所期待的值
required:规定必须在提交之前填写输入域(不能为空)
list:规定输入域的 datalist。datalist 是输入域的选项列表
3.3 HTML5表单的新元素
datalist:规定输入域的选项列表
keygen:提供一种验证用户的可靠方法,用于表单的密钥对生成器字段
当提交表单时,会生成两个键,一个是私钥,一个公钥。
私钥(private key)存储于客户端,公钥(public key)则被发送到服务器。公钥可用于之后验证用户的客户端证书(client certificate)。
output:作为计算结果输出显示(比如执行脚本的输出)