HTML5的文档结构和新增标签
一.HTML5 文档结构
1.第一步:打开 开发工具,打开指定文件夹;
2.第二步:保存 index.html 文件到磁盘中,.html 是网页后缀;
3.第三步:开始编写 HTML5 的基本格式。
<!DOCTYPE html> //文档类型声明
<html lang="zh-cn"> //表示 HTML 文档开始。1.
<head> //包含文档元数据开始
<meta charset="utf-8"> //声明字符编码
<title>基本结构</title> //设置文档标题
</head> //包含文档元数据结束
<body> //表示 HTML 文档内容
<a href="http://www.baidu.com">百度</a> //一个超链接元素(标签)
</body> //表示 HTML
</html> //表示 HTML 文档结束
二.文档结构解析
1.Doctype
文档类型声明(Document Type Declaration,也称 Doctype)。它主要告诉浏览器
所查看的文件类型。在以往的 HTML4.01 和 XHTML1.0 中,它表示具体的 HTML 版本和风格。
而如今 HTML5 不需要表示版本和风格了。
<!DOCTYPE html> //不分区大小写
2.html 元素
首先,元素就是标签的意思,html 元素即 html 标签。html 元素是文档开始和结尾的元素。它是一个双标签,头尾呼应,包含内容。
这个元素有一个属性和值:lang="zh-cn",
表示文档采用语言为:简体中文。
<html lang="zh-cn"> //如果是英文则为 en’
简体中文页面:html lang=zh-cmn-Hans
繁体中文页面:html lang=zh-cmn-Hant
英语页面:html lang=en
3.head 元素
用来包含元数据内容,元数据包括:<link>、<meta>、<noscript>、<script>、
<style>、<title>。这些内容用来浏览器提供信息,比如 link 提供 CSS 信息,script
提供 JavaScript 信息,title 提供页面标题等。
<head>...</head> //这些信息在页面不可见
<noscript>元素用来定义在脚本未被执行时的替代内容(文本)。
此标签可被用于可识别 <script> 标签但无法支持其中的脚本的浏览器。
4.meta 元素
这个元素用来提供关于文档的信息,起始结构有一个属性为:charset="utf8"。表示
告诉浏览器页面采用的什么编码,一般来说我们就用 utf8。当然,文件保存的时候也是
utf8,而浏览器也设置 utf8 即可正确显示中文。
<meta charset="utf-8"> //除了设置编码,还有别的
5.title 元素
这个元素很简单,顾名思义:设置浏览器左上角的标题。
<title>基本结构</title>
6.body 元素
用来包含文档内容的元素,也就是浏览器可见区域部分。所有的可见内容,都应该在这
个元素内部进行添加。
<body>...</body>
7.a 元素
一个超链接,后面会详细探讨。
<a href="http://www.baidu.com">百度</a>
三.元素标签探讨
HTML 是一种标记语言,刚才的结构我们已经详细探讨过。这里,我们再剖析一下这些
“标记”或者叫“标签”,书面上经常称作为“元素”的东西是怎么构成的。
1.元素
元素就是一组告诉浏览器如何处理一些内容的标签。每个元素都有一个关键字,比如
<body>、<title>、<meta>都是元素。不同的标签名称代表不同的意义,后面将会涉及到段落标签、文本标签、链接标签、图片标签等。
元素一般分为两种:单标签(空元素)和双标签。单标签一般用于声明或者插入某个元
素,比如声明字符编码就用<meta>,插入图片就用<img>;双标签一般用于设置一段区域的内容,将其包含起来,比如段落<p>...</p>。
2.属性和值
元素除了有单双之分,元素的内部还可以设置属性和值。这些属性值用来改变元素某些
方面的行为。比如超链接:<a>中的 href 属性,里面替换网址即可链接到不同的网站。
四.实体
HTML 实体就是将有特殊意义的字符通过实体代码显示出来。
显示结果 实体名称 实体编号 描述
空格
< < < 小于号
> > > 大于号
& & & 和号
" " " 引号
' ' ' 撇号
¢ ¢ ¢ 分
£ £ £ 镑
¥ ¥ ¥ 日圆
€ € € 欧元
§ § § 小节
© © © 版权
® ® ® 注册商标
™ ™ ™ 商标
× × × 乘号
÷ ÷ ÷ 除号
五. 新增结构标签
article元素
表示页面中一块与上下文不相关的独立内容。比如一篇文章,一篇博文,一篇论坛帖子,可以嵌套使用的
section元素
表示页面中的一个内容区 块,比如章节、页眉、页脚或页面的其他部分。可以和h1、 h2……等元素结合起来使用,表示文档结构。例:HTML5中<section>……</section>;HTML4 中<div> ……</div>。
aside元素
表示article元素内容之外的、与article元素内容相关的辅助信息。
header元素
表示页面中一个内容区块或真个页面的标题。
hgroup元素
表示对真个页面或页面中的一个内容区块的标题进行组合。
footer元素
表示整个页面或页面中一个内容区块的脚注。一般来说,他会包含创作者的姓名、创作日期以及创作者的联系信息。
nav元素
表示页面中导航链接的部分。
figure元素
表示一段独立的流内容,一般表示文档主体流内容中的一个独立单元。使用figcaption元素为figure元素组添加标题。例如:
<figure>
<figcaption>PRC</figcaption>
<p>The People's Republic of China was born in 1949</p>
</figure>
五.元数据
<meta>元素可以定义文档中的各种元数据,而且一个 HTML 页面可以包含多个<meta>
元素。
1.指定名/值元数据对
<meta name="author" content="bnbbs">
<meta name="description" content="这是一个 HTML5 页面">
<meta name="keywords" content="html5,css3,响应式">
<meta name="generator" content="sublime text 3">
元数据名称 说明
author 当前页面的作者
description 当前页面的描述
keywords 当前页面的关键字
generator 当前页面的编码工具
2.声明字符编码
<meta charset="utf-8">
3.模拟 HTTP 标头字段
//5 秒跳转到指定 URL
<meta http-equiv="refresh" content="5;http://li.cc">
//另一种声明字符编码
<meta http-equiv="content-type" content="text/html charset=utf-8">
属性值 说明
refresh 重新载入当前页面,或指定一个 URL。单位秒。
content-type 另一种声明字符编码的方式
六.全局属性
在此之前,我们涉及到的元素都讲解了它的局部数据,当然也知道一些全局属性,比如
id。全局属性是所有元素共有的行为,HTML5 还提供了一些其他的全局属性。
1.id 属性
<p id="abc">段落</p>
解释: id 属性给元素分配一个唯一标识符。 这种标识符通常用来给 CSS 和 JavaScript
调用选择元素。一个页面只能出现一次同一个 id 名称。
2.class 属性
<p class="abc">段落</p>
<p class="abc">段落</p>
<p class="abc">段落</p>
解释:class 属性用来给元素归类。通过是文档中某一个或多个元素同时设置 CSS 样
式。
3.accesskey 属性
<input type="text" name="user" accesskey="n">
解释:快捷键操作,windows 下 alt+指定键,前提是浏览器 alt 并不冲突。
4.contenteditable 属性
<p contenteditable="true">我可以修改吗</p>
解释:让文本处于可编辑状态,设置 true 则可以编辑,false 则不可编辑。或者直接
设置属性。
5.dir 属性
<p dir="rtl">文字到右边了</p>
解释:让文本从左到右(ltr),还是从右到左(rtl)。
6.hidden 属性
<p hidden>文字到右边了</p>
解释:隐藏元素。
7.lang 属性
<p lang="en">HTML5</p>
解释:可以局部设置语言。
8.title 属性
<p title="HTML5 教程">HTML5</p>
解释:对元素的内容进行额外的提示。
9.tabindex 属性
<input type="text" name="user" tabindex="2">
<input type="text" name="user" tabindex="1">
解释:表单中按下 tab 键,实现获取焦点的顺序。如果是-1,则不会被选中。
10.style 属性
<p style="color:red;">CSS 样式</p>
解释:设置元素行内 CSS 样式。
七.其它新增标签
1.details
定义和用法
<details> 标签用于描述文档或文档某个部分的细节。
目前只有 Chrome 支持 <details> 标签。
2.embed
<embed> 标签定义嵌入的内容,定义外部交互内容或插件。
HTML5: <embed src="horse.wav" />
HTML4:
<object data="flash.swf" type="application/x-shockwave-flash"></object>
3.range
4.autofocus
5. mark
<mark>主要用来在视觉上向用户呈现那些需要突出的文字。<mark>标签的一个比较典型的应用就是在搜索结果中向用户高亮显示搜索关键词。
HTML5: <mark></mark>
HTML4: <span></span>
6. summary
<summary> 标签包含 details 元素的标题,”details” 元素用于描述有关文档或文档片段的详细信息。”summary” 元素应该是 “details” 元素的第一个子元素。
HTML5: <details><summary>HTML 5</summary>This document teaches you everything you have to learn about HTML 5.</details>
HTML4: none
7. detalist
<datalist> 标签定义可选数据的列表。与 input 元素配合使用,就可以制作出输入值的下拉列表。
datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。
请使用 input 元素的 list 属性来绑定 datalist。
<input list="cars" />
<datalist id="cars">
<option value="BMW">
<option value="Ford">
<option value="Volvo">
</datalist>
9. command
表示命令按钮
只有当 command 元素位于 menu 元素内时,该元素才是可见的。否则不会显示这个元素,但是可以用它规定键盘快捷键
<menu>
<command onclick="alert('Hello World')">
Click Me!</command>
</menu>
八.废弃的标签
表现性元素
- basefont
- big
- center
- font
- s
- strike
- tt
- u
建议用语义正确的元素代替他们,并使用CSS来确保渲染后的效果
框架类元素
因框架有很多可用性及可访问性问题,HTML5规范将以下元素移除。
- frame
- frameset
- noframes
但html5支持iframe。
属性类
很多表现性的属性也被新规范移除,如下:
- align
- body标签上的link、vlink、alink、text属性
- bgcolor
- height和width
- iframe元素上的scrolling属性
- valign
- hspace和vspace
- table标签上的cellpadding、cellspacing和border属性
- header标签上的profile属性
- 链接标签a上的target属性
- img和iframe元素的longdesc属性
- abbr取代acronym(用于表示缩写)
- object取代了applet
- ul取代了dir