Web基础之HTML5

+概述:HTML5是W3C 与 WHATWG 合作的结果。

新特性
1)canvas:用于绘画;
2)video/audio:用于媒体播放;
3)web离线存储;
4)新的特殊内容元素:article、footer、header、nav、section
5)新的表单控件:calendar、date、time、email、url、search

*<video src=“a.mp4” controls=“controls”>
用于播放视频,支持的视频格式有:Ogg,MPEG4,WebM。但不是所有浏览器支持;

  • 属性:
    -> autoplay=“autoplay”:视频在就绪后马上播放;
    -> controls=“controls”:显示控件栏,功能包括:播放、暂停、定位、音量、全屏切换、字幕(如果要可用)、音轨(如果可用)
    ->width/height:播放器宽高
    ->loop=“loop”:视频在结束后重新开始
    ->preload=“preload”:视频在页面加载时进行加载,并预备播放(若使用了autoplay,则无效)
    ->src=“”:要播放的url;
  • Dom操作video的方法及事件
    方法:play() pause() load() canPlayType
    属性:currentSrc currentTime videoWidth/videoHeight duration ended error paused muted seeking volume width/height
    事件:play pause progress error timeupdate ended abort empty emptied waiting loadedmetadata

<audio src="song.ogg" controls="controls">
播放音频:

  • 属性:同Video

Drag/drop
用于对元素的拖放,是HTML5的标准组成,任何元素都能拖放。

  • 使用步骤:
    1)设置元素为可拖放。如:<img draggable="true" />
    2)拖动什么。规定当元素拖动时的回调方法ondragstart和setData()。
 ![](img_logo.gif)
…
function drag(ev){ ev.dataTransfer.setData(“Text",ev.target.id);  }

3)放到何处。在ondragover事件中规定放置何处。默认无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。通过调用 ondragover 事件的 event.preventDefault() 方法;
4)进行放置。ondrop,当放置被拖元素时,会发生drop事件。

 function drop(ev){
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));  }

canvas:画布,使用JavaScript在网页上绘制图像;

1)创建:<canvas id="myCanvas" width="200" height=“100"></canvas>
2)通过javaScript绘制:

 <script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
</script>

【cxt下的方法API类似于java下的Canvas的方法API】

SVG(Scalable Vector Graphics):可伸缩矢量图形,在放大或改变尺寸的情况下其图形质量不会有损失,用于定义用于网络的基于矢量的图形,可用xml来定义。
1)与其他图像如jpg/gif的优势:
—> 可通过文本编辑器来创建和修改;
—> 可被搜索、索引、脚本化或压缩;
—> 可伸缩的;
—> 可在任何的分辨率下被高质量地打印;
—> 可在图像质量不下降的情况下被放大;

 <body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190">
  <polygon points="100,10 40,180 190,60 10,60 160,180"
  style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>
</body>

【注:Canvas与SVG的区别】

Canvas:
—> 依赖分辨率
—> 不支持事件处理器
—> 弱的文本渲染能力
—> 能够以 .png 或 .jpg 格式保存结果图像
—> 最适合图像密集型的游戏,其中的许多对象会被频繁重绘
SVG
—> 不依赖分辨率
—> 支持事件处理器
—> 最适合带有大型渲染区域的应用程序(比如谷歌地图)
—> 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
—> 不适合游戏应用

地理定位Geolocation:
Geolocation API 用于获得用户的地理位置。鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。
使用 :getCurrentPosition() 方法来获得用户的位置。

 function getLocation(){
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);   }
  else{
x.innerHTML="Geolocation is not supported by this browser.";}
 }

web存储
两种新方法:
1)localStorage:没有时间限制的数据存储
2)sessionStorage:针对一个session的数据存储;当用户关闭浏览器后,数据会被删除。
【注:这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。】

<script type="text/javascript">
if (localStorage.pagecount){
  localStorage.pagecount=Number(localStorage.pagecount) +1;
  }else {
  localStorage.pagecount=1;}
document.write("Visits "+ localStorage.pagecount + " time(s).");
</script>
<script type="text/javascript">
sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);
</script>

Application Cache:应用程序缓存。

  • 三个优势:
    ->离线浏览;
    ->速度:已缓存资源加载更快;
    ->减小服务器负载:浏览器将只从服务器下载更新过或更改过的资源;
    1)manifest:在html标签中包含manifest标签即可,<html manifest=“demo.appcache">
    【注意:每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面);manifest 文件的建议的文件扩展名是:”.appcache”;manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置。】
    包含三个部分:
    1)CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
    2)NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
    3)FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

**Web Worker
**:后台任务。是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。
1)创建:if(typeof(w)=="undefined") { w=new Worker("demo_workers.js"); }
2)监听:w.onmessage=function(event){document.getElementById(“result").innerHTML=event.data;};
3)终止:w.terminate();
【注意:由于web workder位于外部文件中,无法以访问:window对象、document、parent对象】

server-sent event:服务器发送事件,允许网页获得来自服务器的更新。

  • 单向消息传递。除了IE外都支持。
    1)创建一个EventSource对象,然后规定发送更新的页面的url;
    2)每接收一次更新,就会发生onmessage事件
    3)在onmessage事件中取出数据。
var source=new EventSource("demo_sse.php");
source.onmessage=function(event) {
  document.getElementById("result").innerHTML+=event.data + "<br />";};

注意:服务器端须将Content-Type设置为text/event-stream】

其他事件:
—> onopen:当与服务器的连接被打开
—> onerror:当错误发生

Input元素新增类型
—> email:用于应该包含 e-mail 地址的输入域。
—> url:应该包含 URL 地址的输入域。
—> number:用于应该包含数值的输入域(包括max、min、step、value属性)。
—> range:滑动条,包含一定范围内数字值的输入域。(包括max、min、step、value属性)
—> Date pickers:多个可供选取日期和时间的新输入类型:date(日/月/年)、month、week、time(时/分)、datetime(日/月/年/时/分)、datetime-local
—> search:用于搜索域
—> color:

Input/Form新增属性
—> autocomplete:规定form或input域应该拥有自动完成功能,适用元素<input>下的:text, search, url, telephone, email, password, date pickers, range 以及 color
<form action="demo_form.asp" method="get" autocomplete=“on">
<input type="email" name="email" autocomplete="off" />
—>autofocus:规定在页面加载时,域自动获得焦点。
<input type="text" name="user_name" autofocus="autofocus" />
—> form:规定输入域所属的是一个或个全表单
<input type="text" name="lname" form="user_form" />
—>form overrides(formaction,formenctype,formmethod,formtarget):即重写这些属性。适用于<input>下的:submit和image,如:
<input type="submit" formaction="demo_admin.asp" value="sure" />
—> height/width:规定用于 image 类型的 input 标签的图像高度和宽度。
—>list:规定输入域的 datalist。datalist 是输入域的选项列表。
—> min/max/step:用于为包含数字或日期的 input 类型规定限定(约束),适用于<input>下的:data pickers、number、range
—>multiple:规定输入域中可选择多个值。适用于<input>下的:email和file
—> pattern(regexp):规定用于验证 input 域的模式(pattern)。适用于<input>下的:text, search, url, telephone, email 以及 password。
—> placeholder:提供一种提示(hint),描述输入域所期待的值.
—> required:规定必须在提交之前填写输入域(不能为空)。
<input type="text" name="usr_name" required="required" />
—> novalidate:规定在提交表单时不应该验证 form 或 input 域。适用于<input>下的:text, search, url, telephone, email, password, date pickers, range 以及 color.
<form action="demo_form.asp" method="get" novalidate=“true">

Form元素新增元素
—> datalist:输入框下带一个选项列表,列表是通过 datalist 内的 option 元素创建的。

<input type="url" list="url_list" name="link" />
    <datalist id="url_list">
        <option label="W3School" value="http://www.W3School.com.cn" />
        <option label="Google" value="http://www.google.com" />
        <option label="Microsoft" value="http://www.microsoft.com" />
</datalist>

【注意:option 元素永远都要设置 value 属性。】

—> keygen:密钥对生成器(key-pair generator),是提供一种验证用户的可靠方法,当提交表单时,会生成两个键,一个是私钥,一个公钥。
私钥(private key)存储于客户端,公钥(public key)则被发送到服务器。公钥可用于之后验证用户的客户端证书(client certificate)。但各浏览器支持度都不是很好。
—> output:用于不同类型的输出,比如计算或脚本输出。

博客地址:Web基础之HTML5

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 207,248评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,681评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,443评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,475评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,458评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,185评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,451评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,112评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,609评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,083评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,163评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,803评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,357评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,357评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,590评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,636评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,925评论 2 344

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,601评论 18 139
  • 接上 关于HTML/HTML5(一)//www.greatytc.com/p/33fc7840c079 学...
    Amyyy_阅读 779评论 0 4
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,456评论 1 19
  • 昨天的一天,是我想要的生活。
    叫我叶姑娘阅读 174评论 0 0
  • 今天是4月24日,我的生日。清早起床,打开QQ,收到很多人的祝福。有爸爸的,有好朋友的,有小学初高中同学的,还有一...
    插着扇子的石头阅读 458评论 5 6