HTML5 再学习

HTML5 的声明

<!DOCTYPE html>

只用这个声明就可以了,很简单。还有需要注意的就是 HTML 标签里的 lang 属性 设置成 zh-cn

字符设定

<meta charset="utf-8">

常用新标签

HTML5 一大特性是引入了很多带有语义的新标签。虽然老网站还没有使用新标签,但是新企业,以及手机浏览器,都开始使用HTML5新标签,尤其手机浏览器,对于HTML5 新特性的支持很好,而且很少存在兼容性问题。

W3C Shcool有所有新增的HTML5标签,下边来看一些比较重要的新标签:

HTML5新增标签
标签 语义
header 定义文档的页眉 头部
nav 导航栏部分
footer 定义文档或节的页脚 底部
article 定义文章
section 定义文档中的节(section、区段),有点类似DIV标签
aside 定义侧边栏部分
datalist 标签定义选项列表,需要与input元素配合使用
fieldset 将表单内元素分组,与legend元素一起使用
progress 进度条,这个很有意思,

还有一些和音视频相关的标签在音视频部分单独介绍

HTML5新增标准属性

下边的这些属性,对于所有的元素都有效:

HTML5新增标准属性
属性 说明
contenteditable 是否允许修改内容,不常用
contextmenu 上下文菜单
data-yourvalue 重要,自定义属性,必须要以data-开头,可以用来在元素上保存自己想要的任何数据。
draggable 是否允许拖动,用于链接和图片上有很明显的效果
hidden 规定该元素不显示,而且也从标准流中去除。
spellcheck 规定是否必须对元素进行拼写或语法检查。
subject 规定元素对应的项目。

某些属性需要设置值为false或者true,某些属性如hidden 只要添加给元素,不需要赋值就可以起作用。即使是不需要设置布尔值的元素,只要给元素添加上的时候用JS去拿同名属性,得到的布尔值是true。

HTML 5 事件

HTML5 为window 对象 和普通元素都添加了很多新的事件。不过由于一般这些事件应用较少,需要的时候到W3C查看即可

HTML5 对表单的增强

HTML5目前被浏览器普遍支持的新特性就是对表单元素的增强,为表单元素增加了一系列浏览器验证和新属性,用于更好的控制表单元素的结果。

HTML 新INPUT TYPE
TYPE 说明
email 电子邮件
url 输入URL
number 限定为输入数字
range 需要通过属性指定:<input type=”range” name=”points” min=”1″ max=”10″ />这个外观是一个滑块。
Date Pickers 这是一系列type的新属性,有date, month, week, time, datetime, datetime-local
search 显示为常规的文本域,用于输入需要搜索的文本,主要是为了体现语义。

上边的这些所有属性只要规定好,在提交表单的时候,浏览器会进行验证,验证不通过不会发送请求。

HTML5 新表单属性

除了对input元素增加了新的TYPE属性之外,还对FORM元素和INPUT元素增加了新的属性。

    FORM表单的新属性:

  • autocomplete  规定表单是否要有自动完成功能,设置为on 或者 off,或者只写属性名表示开启,影响浏览器是否显示自动完成的匹配项
  • novalidate  提交表单的时候是否需要验证,设置为 true 或者 false,或者只写属性名表示开启。
新INPUT 属性
属性 说明
placeholder 常用,占位文字,不影响用户输入
autofocus 页面加载好以后自动获得焦点,最好一个页面只给一个元素使用。
multiple 适合email 和 file 域,用于选择多个文件或值。经常使用。
autocomplete 和表单的类似,使用该属性的input必须给name属性
required 必填,如果开启表单验证,这一项也会被验证
accesskey 激活该元素的快捷键
form override attributes 表单重写,有一系列的属性,可以控制表单的各个属性,用于向不同地方提交。

用新增的表单属性和表单类别,外加上 pattern 正则表达式验证,就会很方便的验证表单元素了。

HTML 多媒体要素

HTML5的一大特点就是可以支持音视频的播放,不用像原来一样依赖第三方的中间层播放器比如FLASH等。为此,HTML也引入了新标签,控件和对应的事件。

原来的多媒体文件支持

在早期的时候,插入视频实际上是插入一个视频网站的播放器,一般是FLASH,采用 embed 标签,然后就可以载入视频进行播放了,但是这种方式无法对视频本身进行控制,而且也调用了FLASH插件。

HTML5则致力于网页原生播放视频和音频,不再使用FLASH。比如B站,现在播放器可以选择H5播放器和FLASH播放器。

HTML5 音频标签

音频标签采用 AUDIO 标签,由于版权原因,各个浏览器可以播放的声音文件不同,由于wav不是压缩文件,对于所有浏览器,只要准备.ogg 和 .mp3的两个声音文件,就可以让所有浏览器都播放了。

AUDIO 标签的使用:

  • src  音频文件的地址
  • controls  提供播放控件
  • AUDIO标签之间的文本是供不支持AUDIO标签的浏览器显示用
  • loop  循环播放,不写则播放一次就停止
  • 在AUDIO 标签内部增加SOURCE 标签,其中的src属性用于多浏览器支持,浏览器会去找第一个可以用的文件格式。如果使用SOURCE 标签,则AUDIO标签内不用加src属性
  • autoplay  音乐就绪后自动开始播放
  • preload  音频在页面加载时进行加载,并预备播放,如果设置了autoplay则该属性不起作用。

注意,Chrome浏览器对于自动播放做了限制,一定要用户点击才可以,这样避免后台下载大量数据。关闭的方法是在地址栏内输入 chrome://flags/#autoplay-policy,找到其中的 Autoplay policy,设置为不需要用户手势即可。

实际上AUDIO标签提供的控件非常简陋,但至少给了浏览器一个通用的方法,如果要扩展,只需要通过前端和播放事件,写播放器即可。

HTML5 视频

HTML5为视频提供了VIDEO标签用于播放视频。

VIDEO标签的使用和AUDIO很类似:

  • autoplay  自动播放
  • controls  是否显示默认控件
  • loop  循环播放
  • width  设置窗口宽度
  • height  设置播放窗口的高度
  • 依然可以通过source来进行浏览器兼容

只需要提供MP4,以及OGG和WEBM格式的视频任选一个,就可以实现全部浏览器兼容。

默认控件比较简陋,依然需要通过播放事件写功能齐全的播放器。

HTML5 音频和视频事件

如果对默认的控件不满意,需要写一个功能更强的播放器,则需要参考HTML5对于音视频新增的DOM事件以及一个例子,用到的时候再来学习。

其他HTML5内容

其他HTML5内容还有地理位置应用和本地存储。这个东西待过段时间,快速把《Head First HTML5 Programming》过一遍的时候看一下地理应用和本地存储的内容。