HTML5
HTML5发展史
HTML5草案的前身名为 Web Applications 1.0,于2004年被WHATWG提出,于2007年被W3C接纳,并成立了新的 HTML 工作团队。
HTML 5 的第一份正式草案已于2008年1月22日公布。HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。
2012年12月17日,万维网联盟(W3C)正式宣布凝结了大量网络工作者心血的HTML5规范已经正式定稿。根据W3C的发言稿称:“HTML5是开放的Web网络平台的奠基石。”
2013年5月6日, HTML 5.1正式草案公布。该规范定义了第五次重大版本,第一次要修订万维网的核心语言:超文本标记语言(HTML)。在这个版本中,新功能不断推出,以帮助Web应用程序的作者,努力提高新元素互操作性。
本次草案的发布,从2012年12月27日至今,进行了多达近百项的修改,包括HTML和XHTML的标签,相关的API、Canvas等,同时HTML5的图像img标签及svg也进行了改进,性能得到进一步提升
由上面的图可以得知,现在的HTML5还不是一个最终统一的版本,所以说HTML5用在手机端的开发
浏览器兼容
1 | 支持Html5的浏览器包括Firefox(火狐浏览器),IE9及其更高版本,Chrome(谷歌浏览器),Safari,Opera等;国内的 遨游浏览器(Maxthon),以及基于IE或Chromium(Chrome的工程版或称实验版)所推出的360浏览器、搜狗浏览器、QQ浏览器、猎豹 浏览器等国产浏览器同样具备支持HTML5的能力。 |
不同的浏览器显示的效果可能不一样。因为HTML5没有一个统一的标准,不同的浏览器解析时不一样的,现在还处于一个推广的阶段,但是大部分的还是一样的
语法
内容类型(ContentType)
- HTML5的文件扩展符与内容类型保持不变,仍然为”.html”或”.htm”
DOCTYPE声明
<!DOCTYPE html>不区分大小写
指定字符集编码
<meta charset="UTF-8">
可省略标记的元素
- 不允许写结束标记的元素:br、col、embed、hr、img、input、link、meta
- 可以省略结束标记的元素:li、dt、dd、p、option、colgroup、thead、tbody、tfoot、tr、td、th
- 可以省略全部标记的元素:html、head、body、colgroup、tbody
属性值可以使用双引号,也可以使用单引号。
语义化标签
扩展:语义化的重要性:
- 当页面加载失败的时候,还能够呈现出清晰的结构
- 有利于SEO优化,利于被搜索引擎收录(即便于网络爬虫的识别)
- 在项目开发及维护时,语义化的也很大程度上降低开发难度,节省成本
1 | 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义。(即使我们用css样式的id和class形容这块内容的意义)。这些标签只是我们提供给浏览器的指令,只是定义一个网页的某些部分。但现在,那些之前没“意义”的标签因为因为html5的出现消失了,这就是我们平时说的“语义”。 |
- section元素 表示页面中的一个区块
- article元素 表示一块与上下文无关的独立的内容
- aside元素 在article之外的,与article内容相关的辅助信息
- header元素 表示页面中一个内容区块或整个页面的标题
- footer元素 表示页面中一个内容区块或整个页面的脚注
- nav元素 表示页面中导航链接部分
- figure元素 表示一段独立的内容,使用figcaption元素为其添加标题(第一个或最后一个子元素的位置)
- main元素 表示页面中的主要的内容(ie不兼容)
- hgroup标题的一个分组
- mark定义高亮显示的文本(span)
- dialog标记定义一个对话框(会话框)类似微信
- embed 标记定义外部的可交互的内容或插件 比如flash
多媒体标签
1 | <video src=""></video> |
属性
- controls属性:如果出现该属性,则向用户显示控件,比如播放按钮。
- autoplay属性:如果出现该属性,则视频在就绪后马上播放。
- loop属性:重复播放属性。
- muted属性:静音属性。
- poster属性:规定视频正在下载时显示的图像,直到用户点击播放按钮。
source
新增web应用标签:
progress 表示进程
meter 表示测量尺度
details 描述文档或文档细节(只有Chrome 支持)
datalist 定义选项列表。
(1)progress标签:
状态标签,显示进度,(任务过程:安装、加载);Ie9及更低版本不支持,多用于js控制( 此标签不常用)
属性:value: 设置已经完成的情况
max:设置最终要完成的情况
应用代码:
(2)meter标签:
用于表示已知范围或分数值内的标量测量,也被称为尺度;属性仅用于已知最大和最小值的度量;ie浏览器不支持( 此标签不常用)
常用属性:value:设置 规定度量的当前值
min:规定范围的最小值
max:规定范围的最大值
应用代码:
(3)details标签:折叠区块
用于描述文档或文档某个部分的细节;
目前只有 Chrome 和 Safari 6 支持
属性:open =”open” :设置信息是否可见
应用:
详细内容描述
4,datalist 必须和list属性结合使用。做提示信息。
1 | <input type="url" list="url_list" name="link" /> |
HTML5表单
Html表单一直都是web的核心技术之一,html5为表单添加了新的js功能和结构上更加自由的写法,极大的提高了开发效率,xhtml中需要放在form中,而html5中表单元素可以放在页面任何位置;
新增表单类型元素:
email 邮箱
url 网址
number 数值
range 范围数值
date 日期
search 搜索
color 颜色
1、 email: 邮箱类型的文本框验证
应用:
multiple 选择(上传)多个
2、 url : 输入URL地址的文本框
应用:
3、 color : 用来选取颜色。
应用:
4、 number: 用来输入数字的文本框。
属性:min :允许的最小值
max: 允许的最大值
step: 规定的间隔值
value:默认值
应用:<input name=”number1” type=”number” value=”20” minn=”10” max=”100”
step=”5” required />
5、 range: 用来只允话输入一段范围内数值的文本框
属性: min 最小值
max 最大值
step 拖动的步幅间隔值
value:默认值
应用: <input name=”range1” type=”range” value=”25” min=”0” max=”100”
step=”5” />
6、 search : 用于搜索域,显示为常规的文本框,除了火狐浏览
器其他都会在输入框里显示一个取消搜索的符号
应用:
7、 date : 提供多个选取日期和时间的新输入类型
属性:
·date - 选取日、月、年
·month - 选取月、年
·week - 选取周和年
·time - 选取时间(小时和分钟)
·datetime - 选取时间、日、月、年(UTC世界标准时间)
·datetime-local - 选取时间、日、月、年(本地时间)
8、 output :用于不同类型的输出,比如计算或脚本输出,显 示计算结果
注:必须从属于某个表单。即,必须将它书写在表单内部,或对它添加form属性。
应用:
第一种:
1 | <form oninput="out.value=parseInt(a.value)+parseInt(b.value)"> |
对新元素样式的使用:
注意,跟 input 标签设置样式一样,但是要设置标签中局部的样式不能实现。如改变日历的背景色,颜色框的按钮效果,等,这些都不可以实现
表单验证
HTML5增加了大量在提交时对表单及表单元素内容有效性验证的功能。
1、自动验证
1)、required
可以应用在大多数输入元素上(除了隐藏元素和图片),在提交时如果元素内容为空白,则不允许提交,同时显示提示文字。
2)、pattern
将属性值设为某个格式的正则表达式,在提交时会检查其内容是否符合给定格式。
例:<input pattern = “[0-9][A-Z]{3}” title=”输入内容:一个数与三个大写字母” placeholder=’输入内容:一个数与三个大写字母’>
1:用户名验证规则 : 用户名长度为6~12并且由字母组成
pattern=”[A-z]{6,12}”
2:密码验证规则 : 密码必须是数组与字母组合
pattern=”[A-Za-z].[0-9]|[0-9].[A-Za-z]”
*(3***) placeholder属性:(文本框的提示信息)
文本框处于未输入状态时文本框中显示的输入提示。
(4****) autofocus属性:给文本框、选择框、或者按钮控件加上该属性,当打开页面时,该控件自动获得焦点,一个页面只能有一个。
*(5***) autocomplete属性:输入富足和所用的自动完成功能,是一个节省输入时间,同时也十分方便的功能。只有三种:on/off/“”。on可显示指定候补输入的数据列表,使用datalist元素与list属性提供候补输入的数据列表,自动完成时,可以将该datalist元素中的数据作为候补输入的数据在文本框中显示: (autocomplete 是否自动提示信息 属性值 on off)
<input type=”text” name=”greeting” **autocomplete**=”on” list =”greeting”>
(6)Novalidate****属性 取消验证 可以对form表单添加novalidate属性,即使form表单中的input添加了required,也将不进行验证
在 Safari 和 Internet Explorer 9 及之前的版本中不支持 novalidate 属性。
(7)disabled禁用
html5与html4的区别
- 废除了一些过时的html4标签:center、font、u
- 添加了一些新的元素
- 更加智能的表单元素:date、email、url等;
- 更加合理的结构标签:section、nav、aside等;
- 新的全局属性:meta、lang、等
- 文档类型声明:
<!doctype html > 的简化
- 新的js API
HTML5学习参考的网站:
http://www.runoob.com (学习文档网站)
http://caniuse.com (查看不同浏览器版本对html5标签的支持情况)
http://www.w3school.com.cn (w3c文档)
https://developer.mozilla.org/zh-CN/ (学习文档网站)