HTML5

1.认识HTML5

  1. HTML5是下一代的HTML。
  2. HTML5 将成为 HTML、XHTML 以及 HTML DOM 的新标准。
  3. HTML5 中的一些有趣的新特性:
    • 用于绘画的 canvas 元素
    • 用于媒介回放的 video 和 audio 元素
    • 对本地离线存储的更好的支持
    • 新的特殊内容元素,比如 article、footer、header、nav、section
    • 新的表单控件,比如 calendar、date、time、email、url、search

2.新增的常用语义化元素

在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义。(即使我们用css样式的id和class形容这块内容的意义)。这些标签只是我们提供给浏览器的指令,只是定义一个网页的某些部分。但现在,那些之前没“意义”的标签因为因为html5的出现消失了,这就是我们平时说的“语义”。

  1. header
    header 元素代表“网页”或“section”的页眉。
  2. footer
    footer元素代表“网页”或“section”的页脚,通常含有该节的一些基本信息,譬如:作者,相关文档链接,版权资料。如果footer元素包含了整个节,那么它们就代表附录,索引,提拔,许可协议,标签,类别等一些其他类似信息。
  3. nav
    nav元素代表页面的导航链接区域。用于定义页面的主要导航部分。
  4. aside
    aside元素被包含在article元素中作为主要内容的附属信息部分,其中的内容可以是与当前文章有关的相关资料、标签、名次解释等。(特殊的section)
  5. section
    section元素代表文档中的“节”或“段”,“段”可以是指一篇文章里按照主题的分段;“节”可以是指一个页面里的分组。
  6. article
    article元素最容易跟section和div容易混淆,其实article代表一个在文档,页面或者网站中自成一体的内容,其目的是为了让开发者独立开发或重用。譬如论坛的帖子,博客上的文章,一篇用户的评论,一个互动的widget小工具。(特殊的section)
  7. 其他结构元素标签
    HTML5节元素标签包括body article nav aside section header footer,还有h1-h6 address。
  • hgroup元素代表“网页”或“section”的标题,当元素有多个层级时,该元素可以将h1到h6元素放在其内,譬如文章的主标题和副标题的组合
  • address代表区块容器,必须是作为联系信息出现,邮编地址、邮件地址等等,一般出现在footer。
  • h1-h6因为section和article的出现,h1-h6定义也发生了变化,允许一张页面出现多个h1

3.音频与视频元素及其属性

音频:audio 视频:video

  1. 方法
    • addTextTrack()
      向视频/音频添加文本轨道
    • canPlayType()
      检测浏览器是否能播放指定的音频/视频类型
    • load()
      重新加载音频/视频元素
    • play()
      开始播放音频/视频
    • pause()
      暂停当前播放的音频/视频
  2. 属性
    • | audioTracks | 返回表示可用音轨的 AudioTrackList 对象 |
    • | autoplay | 设置或返回是否在加载完成后随即播放音频/视频 |
    • | buffered | 返回表示音频/视频已缓冲部分的 TimeRanges 对象 |
    • | controller | 返回表示音频/视频当前媒体控制器的 MediaController 对象 |
    • | controls | 设置或返回音频/视频是否显示控件(比如播放/暂停等) |
    • | crossOrigin | 设置或返回音频/视频的 CORS 设置 |
    • | currentSrc | 返回当前音频/视频的 URL |
    • | currentTime | 设置或返回音频/视频中的当前播放位置(以秒计) |
    • | defaultMuted | 设置或返回音频/视频默认是否静音 |
    • | defaultPlaybackRate | 设置或返回音频/视频的默认播放速度 |
    • | duration | 返回当前音频/视频的长度(以秒计) |
    • | ended | 返回音频/视频的播放是否已结束 |
    • | error | 返回表示音频/视频错误状态的 MediaError 对象 |
    • | loop | 设置或返回音频/视频是否应在结束时重新播放 |
    • | mediaGroup | 设置或返回音频/视频所属的组合(用于连接多个音频/视频元素) |
    • | muted | 设置或返回音频/视频是否静音 |
    • | networkState | 返回音频/视频的当前网络状态 |
    • | paused | 设置或返回音频/视频是否暂停 |
    • | playbackRate | 设置或返回音频/视频播放的速度 |
    • | played | 返回表示音频/视频已播放部分的 TimeRanges 对象 |
    • | preload | 设置或返回音频/视频是否应该在页面加载后进行加载 |
    • | readyState | 返回音频/视频当前的就绪状态 |
    • | seekable | 返回表示音频/视频可寻址部分的 TimeRanges 对象 |
    • | seeking | 返回用户是否正在音频/视频中进行查找 |
    • | src | 设置或返回音频/视频元素的当前来源 |
    • | startDate | 返回表示当前时间偏移的 Date 对象 |
    • | textTracks | 返回表示可用文本轨道的 TextTrackList 对象 |
    • | videoTracks | 返回表示可用视频轨道的 VideoTrackList 对象 |
    • | volume | 设置或返回音频/视频的音量 |
  3. 事件
事件 描述
abort 当音频/视频的加载已放弃时
canplay 当浏览器可以播放音频/视频时
canplaythrough 当浏览器可在不因缓冲而停顿的情况下进行播放时
durationchange 当音频/视频的时长已更改时
emptied 当目前的播放列表为空时
ended 当目前的播放列表已结束时
error 当在音频/视频加载期间发生错误时
loadeddata 当浏览器已加载音频/视频的当前帧时
loadedmetadata 当浏览器已加载音频/视频的元数据时
loadstart 当浏览器开始查找音频/视频时
pause 当音频/视频已暂停时
play 当音频/视频已开始或不再暂停时
playing 当音频/视频在已因缓冲而暂停或停止后已就绪时
progress 当浏览器正在下载音频/视频时
ratechange 当音频/视频的播放速度已更改时
seeked 当用户已移动/跳跃到音频/视频中的新位置时
seeking 当用户开始移动/跳跃到音频/视频中的新位置时
stalled 当浏览器尝试获取媒体数据,但数据不可用时
suspend 当浏览器刻意不获取媒体数据时
timeupdate 当目前的播放位置已更改时
volumechange 当音量已更改时
waiting 当视频由于需要缓冲下一帧而停止

4.新增表单类型

  1. email
    email 类型用于应该包含 e-mail 地址的输入域。
    在提交表单时,会自动验证 email 域的值。
  2. url
    url 类型用于应该包含 URL 地址的输入域。
    在提交表单时,会自动验证 url 域的值。
  3. number
    number 类型用于应该包含数值的输入域。
    您还能够设定对所接受的数字的限定:
属性 描述
max number 规定允许的最大值
min number 规定允许的最小值
step number 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
value number 规定默认值
  1. range
    range 类型用于应该包含一定范围内数字值的输入域。
    range 类型显示为滑动条。
    您还能够设定对所接受的数字的限定:
属性 描述
max number 规定允许的最大值
min number 规定允许的最小值
step number 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
value number 规定默认值
  1. Date pickers (date, month, week, time, datetime, datetime-local)
    HTML5 拥有多个可供选取日期和时间的新输入类型:

date - 选取日、月、年
month - 选取月、年
week - 选取周和年
time - 选取时间(小时和分钟)
datetime - 选取时间、日、月、年(UTC 时间)
datetime-local - 选取时间、日、月、年(本地时间)

  1. search
    search 类型用于搜索域,比如站点搜索或 Google 搜索。
    search 域显示为常规的文本域。
  2. color
    颜色选择

5.Web 存储

在客户端存储数据
HTML5 提供了两种在客户端存储数据的新方法:
* localStorage - 没有时间限制的数据存储,第二天、第二周或下一年之后,数据依然可用。
* sessionStorage - 针对一个 session 的数据存储当用户关闭浏览器窗口后,数据会被删除。

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高

在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。

HTML5 使用 JavaScript 来存储和访问数据。

6.Canvas 画布 和 SVG

  1. Canvas 画布

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。

画布是一个矩形区域,您可以控制其每一像素。

canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

  • 创建 Canvas 元素

向 HTML5 页面添加 canvas 元素。
规定元素的 id、宽度和高度:

<canvas id="myCanvas" width="200" height="100"></canvas>

canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成

  1. SVG
  • 什么是SVG?

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
SVG 用于定义用于网络的基于矢量的图形
SVG 使用 XML 格式定义图形
SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失
SVG 是万维网联盟的标准
SVG 的优势
与其他图像格式相比(比如 JPEG 和 GIF),使用

  • SVG 的优势在于:

SVG 图像可通过文本编辑器来创建和修改
SVG 图像可被搜索、索引、脚本化或压缩
SVG 是可伸缩的
SVG 图像可在任何的分辨率下被高质量地打印
SVG 可在图像质量不下降的情况下被放大

  • 将 SVG 元素直接嵌入 HTML 页面中:
<!DOCTYPE html>
<html>
<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>
</html>
  1. Canvas 画布 和 SVG的比较
  • Canvas

依赖分辨率
不支持事件处理器
弱的文本渲染能力
能够以 .png 或 .jpg 格式保存结果图像
最适合图像密集型的游戏,其中的许多对象会被频繁重绘

  • SVG

不依赖分辨率
支持事件处理器
最适合带有大型渲染区域的应用程序(比如谷歌地图)
复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
不适合游戏应用

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