HTML 5 基础教程

HTML是超文本标记语言,是一种专门用来制作网页的语言,而HTML5就是它的第五个版本,2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准规范终于制定完成,该标准针对当前互联网的飞速发展制定了更加标准的网页语言规范及适用功能,同时也给我们开发者带来了更多的开发选择,学习它是每个前端开发者必修的课程。

W3CAPI
1
2020-06-15 06:59:35
文档目录
我的书签
 

HTML5 知识点大全

我们已经学习了HTML5的所有知识,这里给大家列出一个知识大纲,方便对我们从整体层面对知识有一个认识,加深我们对HTML5的理解:
  • 文档结构的变化:文档声明更加简洁<!DOCTYPE>
  • 多媒体处理:Video 和 Audio
  • 图像处理:<canvas> 和 内联 SVG
  • Web离线应用:本地存储、WebSQL等
  • 代码结构化处理:新增语义元素
  • 表单控件新特性:新表单元素、新属性、新输入类型、自动验证功能
  • 已移除的标签元素
  • 新的属性编写语法:允许 4 种不同的属性编写语法

文档结构的变化

<!doctype> 声明必须位于 HTML5 文档中的第一行,使用它已经非常简单:
<!DOCTYPE html>
最小的HTML5文档,下面是一个简单的HTML5文档结构,也是一个HTML5页面的标准写法:
<!DOCTYPE html>
<html>
<head>
<!-- 对于中文网页需要使用 <meta charset="utf-8"> 声明编码,否则会出现乱码 -->
<meta charset="utf-8">
<title>文档标题</title>
</head>
 
<body>
文档内容......
</body>
 
</html>

多媒体处理

使用 HTML5 你可以简单的在网页中播放 视频(video)与音频 (audio) 。

图像处理

使用 HTML5 你可以简单的绘制图形:

Web离线应用

使用 HTML5 你可以简单地开发Web(离线)应用,包含的技术如下:
  • 本地数据存储:localStorage 和 sessionStorage
  • 访问本地文件:HTML5 File Api
  • 本地 SQL 支持:WebSQL
  • 缓存引用:Application Cache

代码结构化处理

HTML5 添加了很多语义标签元素,来帮助我们将代码结构化和更具有自我描述性,如下所示:
标签 描述
<article> 定义页面独立的内容区域。
<aside> 定义页面的侧边栏内容。
<bdi> 允许您设置一段文本,使其脱离其父元素的文本方向设置。
<command> 定义命令按钮,比如单选按钮、复选框或按钮。
<details> 用于描述文档或文档某个部分的细节。
<dialog> 定义对话框,比如提示框。
<summary> 标签包含 details 元素的标题。
<figure> 规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption> 定义 <figure> 元素的标题。
<footer> 定义 section 或 document 的页脚。
<header> 定义了文档的头部区域
<mark> 定义带有记号的文本。
<meter> 定义度量衡。仅用于已知最大和最小值的度量。
<nav> 定义导航链接的部分。
<progress> 定义任何类型的任务的进度。
<ruby> 定义 ruby 注释(中文注音或字符)。
<rt> 定义字符(中文注音或字符)的解释或发音。
<rp> 在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
<section> 定义文档中的节(section、区段)。
<time> 定义日期或时间。
<wbr> 规定在文本中的何处适合添加换行符。

已移除的标签元素

以下的 HTML 4.01 元素在HTML5中已经被删除,虽然有些浏览器还继续保持对这些元素的支持,但是我们在实际开发中应该尽量避免使用它们:
  • <acronym>
  • <applet>
  • <basefont>
  • <big>
  • <center>
  • <dir>
  • <font>
  • <frame>
  • <frameset>
  • <noframes>
  • <strike>

新的属性语法

HTML5 标准允许 4 中不同的属性语法。如下表格演示在 <input> 标签中使用的不同语法:
类型 示例
直接声明属性名(Empty) <input type="text" value="John Doe" disabled>
属性值可不用引号(Unquoted) <input type="text" value=John Doe>
双引号属性值(Double-quoted) <input type="text" value="John Doe">
单引号属性值(Single-quoted) <input type="text" value='John Doe'>

HTML5 浏览器支持及兼容处理

如何处理浏览器无法识别HTML5新元素标签问题?我们如何让一些较早的浏览器(不支持HTML5)支持 HTML5?现代的浏览器都支持 HTML5。但是所有旧版的和最新的浏览器,对无法识别的元素会作为内联元素自动处理。正因为如此,我们可以 "教会" 浏览器处理 "未知" 的 HTML 元素。甚至你可以教会 IE6 (Windows XP 2001) 浏览器处理未知的 HTML 元素。具体方法如下:

一、将 HTML5 元素定义为块元素

HTML5 定了 8 个新的 HTML 语义(semantic) 元素。所有这些元素都是块级元素。为了能让旧版本的浏览器正确显示这些元素,你可以设置 CSS 的 display 属性值为 block:
header, section, footer, aside, nav, main, article, figure {
    display: block; 
}

二、为 HTML 添加新元素,我们可以为 HTML 添加新的元素

该实例向 HTML 添加的新的元素,并为该元素定义样式,元素名为 <mytag> :
<h1>我的第一个标题</h1>

<p>我的第一个段落。</p>

<mytag>我的第一个新元素</mytag>

<script type="text/javascript">
    //JavaScript 语句 document.createElement("mytag") 是为 IE 浏览器添加新的元素。
    document.createElement("mytag");
</script>
执行一下 

三、兼容浏览器(Internet Explorer 及其他)支持HTML5

你可以使用以上的方法来为 IE 浏览器添加 HTML5 元素,但是:Internet Explorer 8 及更早 IE 版本的浏览器不支持以上的方式(Internet Explorer 8 以及更早的版本,不允许对未知元素添加样式)。我们可以使用 Sjoerd Visscher 创建的“HTML5 Enabling JavaScript”, “shiv“来解决该问题,代码如下:
<!--[if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
以上代码是一个注释,作用是在 IE 浏览器的版本小于 IE9 时将读取 html5.js 文件,并解析它。国内用户请使用本站静态资源库(Google 资源库在国内不稳定):
<!--[if lt IE 9]>
  <script src="http://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
<![endif]-->
针对IE浏览器html5shiv 是比较好的解决方案。html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。如下代码为完整的IE浏览器兼容处理解决方案(使用Shiv):
<!DOCTYPE html>
<html>
<head>

    <meta charset="UTF-8">
    <title>HTML5 浏览器支持及兼容处理 使用html5shiv兼容IE浏览器</title>
    
    <!-- html5shiv.js 引用代码必须放在 <head> 元素中,因为 IE 浏览器在解析 HTML5 新元素时需要先加载该文件。-->
    <!--[if lt IE 9]>
    <script src="https://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script>
    <![endif]-->

</head>

<body>

<h1>我的第一篇文章</h1>

<article>
    W3CAPI 在线教程 —— 开源是软件行业第一生产力!!!
</article>

</body>
</html>
执行一下

HTML5 元素标签API大全

自1999年以来,HTML 4.01的出现已经改变了很多旧的HTML语法及特性,如今在HTML 4.01中的几个已经被废弃的元素标签,这些元素标签在HTML5中被删除或重新定义;为了更好地处理今天的互联网Web应用,HTML5添加了很多新元素标签及功能,来更好的适应如今的网络时代,如:图形绘制、多媒体处理、更好的页面结构、更好的代码组织形式处理、API拖放元素、定位、包括网页应用程序缓存、存储、网络工作者等。如下为HTML5中的标签列表:
  1. 画布 <canvas> 新标签
  2. 多媒体处理新元素
  3. 新表单元素
  4. 新的语义和结构元素
  5. 已移除的元素

画布 <canvas> 新标签

标签 描述
<canvas> 标签定义图形,比如图表和其他图像。该标签基于 JavaScript 的绘图 API

多媒体处理新元素

标签 描述
<audio> 定义音频内容
<video> 定义视频(video 或者 movie)
<source> 定义多媒体资源 <video> 和 <audio>
<embed> 定义嵌入的内容,比如插件。
<track> 为诸如 <video> 和 <audio> 元素之类的媒介规定外部文本轨道。

新表单元素

标签 描述
<datalist> 定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。
<keygen> 规定用于表单的密钥对生成器字段。
<output> 定义不同类型的输出,比如脚本的输出。

新的语义和结构元素

标签 描述
<article> 定义页面独立的内容区域。
<aside> 定义页面的侧边栏内容。
<bdi> 允许您设置一段文本,使其脱离其父元素的文本方向设置。
<command> 定义命令按钮,比如单选按钮、复选框或按钮
<details> 用于描述文档或文档某个部分的细节
<dialog> 定义对话框,比如提示框
<summary> 标签包含 details 元素的标题
<figure> 规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption> 定义 <figure> 元素的标题
<footer> 定义 section 或 document 的页脚。
<header> 定义了文档的头部区域
<mark> 定义带有记号的文本。
<meter> 定义度量衡。仅用于已知最大和最小值的度量。
<nav> 定义导航链接的部分。
<progress> 定义任何类型的任务的进度。
<ruby> 定义 ruby 注释(中文注音或字符)。
<rt> 定义字符(中文注音或字符)的解释或发音。
<rp> 在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
<section> 定义文档中的节(section、区段)。
<time> 定义日期或时间。
<wbr> 规定在文本中的何处适合添加换行符。

已移除的元素(在HTML5中已经被删除)

标签 描述
<acronym> 标记一个首字母缩写,通过对缩写进行标记,您能够为浏览器、拼写检查和搜索引擎提供有用的信息
<applet> 标签定义嵌入的 applet
<basefont> 规定页面上的默认字体颜色和字号
<big> 呈现大号字体效果
<center> 对其所包括的文本进行水平居中
<dir> 定义目录列表
<font> 规定文本的字体、字体尺寸、字体颜色
<frame> 定义 frameset 中的一个特定的窗口(框架)
<frameset> 定义一个框架集。它被用来组织多个窗口(框架)。每个框架存有独立的文档
<noframes> 为那些不支持框架的浏览器显示文本。noframes 元素位于 frameset 元素内部
<strike> 定义加删除线文本
<tt> 呈现类似打字机或者等宽的文本效果
友情提示