
1.3 HTML5新增的元素和废除的元素
本节详细介绍HTML5中新增和废除了哪些元素。
1.3 .1 新增的结构元素
由于HTML4缺少结构,即使形式良好的HTML页面也比较难以处理。必须分析标题的级别,才能看出各个部分的划分方式。边栏、页脚、页眉、导航条、主内容区和各篇文章都由通用的Div元素来表示。HTML5添加了一些新元素,专门用来标识这些常见的结构,不需要再为Div的命名费尽心思,对于手机、阅读器等设备更有语义的好处。
提示
HTML5增加了新的结构元素来表达这些最常用的结构。
① section:可以表达书本的一部分、一章或一节。
② header:页面主体上的头部,并非head元素。
③ footer:页面的底部(页脚),可以是一封邮件签名的所在。
④ nav:到其他页面的链接集合。
⑤ article:博客、杂志、文章汇编等中的一篇文章。
1.section元素
section元素表示页面中的一个内容区块,比如章节、页眉、页脚或页面中的其他部分。它可以与h1、h2、h3、h4、h5、h6等元素结合起来使用,标示文档结构。
HTML5中代码示例:
<section>…</section>
2.header元素
header元素表示页面中一个内容区块或整个页面的标题。
HTML5中代码示例:
<header>…</header>
3.footer元素
footer元素表示整个页面或页面中一个内容区块的脚注。一般来说,它会包含创作者的姓名、创作日期及创作者的联系信息。
HTML5中代码示例:
<footer>…</footer>
4.nav元素
nav元素表示页面中导航链接的部分。
HTML5中代码示例:
<nav>…</nav>
5.article元素
article元素表示页面中与上下文不相关的一块独立内容,如博客中的一篇文章或报纸中的一篇文章。
HTML5中代码示例:
<article>…</article>
下面是一个网站的页面,用HTML5编写代码如下所示。
<!doctype html> <html> <head> <meta charset="gb2312"> <title>html5新增结构元素</title> </head> <body> <header> <h1>北京新雨辰科技</h1> </header> <section> <article> <h2><a href="http://" mce_href="http://">标题1</a></h2> <p>内容1...</p> </article> <article> <h2><a href=”http://" mce_href="http://">标题2</a></h2> <p>内容2...</p> </article> ... </section> <footer> <nav> <ul> <li><a href="http://" mce_href="http://">导航1</a></li> <li><a href="http://" mce_href="http://">导航2</a></li> ... </ul> </nav> <p>© 北京新雨辰科技</p> </footer> </body> </html>
运行代码,在浏览器中浏览,效果如图1.5所示。引入这些新元素,布局中将不再都是div元素,而是通过标签元素就可以识别出每个部分的内容和定位的代码。这种改变对于搜索引擎而言,将极大提高内容的准确度。

图1.5 HTML5新增结构元素实例浏览效果
1.3 .2 新增的块级元素
HTML5还增加了一些纯语义性的块级元素:aside、figure、figcaption、dialog。
①aside:定义所处位置内容之外的内容,如侧边栏。
②figure:定义媒介内容的分组,以及它们的标题。
③figcaption:媒介内容的标题说明。
④dialog:定义对话(会话)。
1.aside元素
aside可以用于表达注记、侧栏、摘要、插入的引用等作为补充主体的内容。表达blog的侧栏的代码如下。在浏览器中浏览,效果如图1.6所示。

图1.6 aside元素
<aside> <h3>最新文章</h3> <ul> <li><a href="#" >文章标题</a></li> </ul> </aside>
2.figure元素与figcaption元素
figure元素表示一段独立的流内容,一般表示文档主题流内容中的一个独立单元。使用figcaption元素为figure元素组添加标题。以下是给图片添加标示的示例。
HTML4代码示例:
<img src="index.jpg" alt="葡萄酒业有限公司" /> <p>葡萄酒业有限公司</p>
上面的代码文字在<p>标签里,与<img>标签各行其道,很难让人联想到这就是标题。
HTML5代码示例:
<figure> <img src="index.jpg" alt="葡萄酒业有限公司" /> <figcaption> <p>葡萄酒业有限公司</p> </figcaption> </figure>
运行代码,在浏览器中浏览,效果如图1.7所示。HTML5采用figure元素对此进行了改进。当figure元素和figcaption元素组合使用时,我们就可以语义化地联想到这就是图片对应的标题。

图1.7 figure元素实例
3.dialog元素
<dialog> <dt>问</dt> <dd>这次夏令营和一般旅游有何区别?</dd> <dt>答</dt> <dd> 本次夏令营以游学为主,每10~15人有一名语文老师带队,侧重于了解黄河流域的文化,而且线路是独家定制的。 </dd> <dt>问</dt> <dd>15天的行程是否太长?</dd> <dt>答</dt> <dd>15天应该是个临界线,由于本次游学线路的特殊性,行程太短学生无法对所走路线形成一个整体的认识,所以 安排的15天行程,除第7天的行程略有些紧张外,其他都不会太累,保证孩子不至于太过疲劳。</dd> </dialog>
运行代码,在浏览器中浏览,效果如图1.8所示。

图1.8 dialog元素示例
1.3 .3 新增的行内语义元素
HTML5增加了一些行内语义元素:mark、time、meter、progress。
① mark:定义有记号的文本。
② time:定义日期或时间。
③ meter:定义预定义范围内的度量。
④ progress:定义运行中的进度。
1.mark元素
mark元素用来标记一些不需要特别强调的文本。
举例:
<!doctype html> <html> <head> <title>mark元素</title> </head> <body> <p>国庆节期间,高一年级全体同学<mark>去中国科技馆参观</mark>。</p> </body> </html>
运行代码,在浏览器中浏览,效果如图1.9所示,<mark>与</mark>标签之间的文字“去中国科技馆参观”添加了记号。

图1.9 mark元素示例
2.time元素
time元素用于定义时间或日期。该元素可以代表24小时中的某一时刻,在表示时刻时,允许有时间差。在设置时间或日期时,只需将该元素的属性“datetime”设为相应的时间或日期即可。
举例:
<p id="p1"> <time datetime="2019-10-31">今天是2019年10月31日</time> <p> <p id="p2"> <time datetime="2019-10-31">经中心校研究决定,于11月8日上午8:00在中心小学多功能教室举行“第五届小 学生艺术展演暨庆‘六一’文艺汇演”,届时我们将邀请知名艺术老师做评委。请各校积极做好参展的各项工作,特别 要做好安全预案,校长要亲自带队,确保师生安全。 </time> </p> <p id="p3"> <time datetime="2019-3-20" pubdate="true">本消息发布于2019年10月31日</time> </p>
<p>标签ID为“p1”,其中的<time>元素表示日期。页面在解析时,获取的是属性“datetime”中的值,而标签之间的内容只用于显示在页面中。
<p>元素ID为“p2”中的<time>元素表示日期和时间。
<p>元素ID为“p3”中的<time>元素表示发布日期。为了在文档中对这两个日期进行区分,在最后一个<time>元素中增加了“pubdate”属性,表示此日期为发布日期。
运行代码,在浏览器中浏览,效果如图1.10所示。

图1.10 time元素示例
3.progress元素
progress是HTML5中新增的状态交互元素,用来表示页面中某个任务完成的进度(进程)。例如下载文件时,文件下载到本地的进度值,可以通过该元素动态展示在页面中,展示的方式既可以是整数(如1~100),也可以是百分比(如10%~100%)。
举例:
<!doctype html> <html> <head> <meta charset="utf-8" /> <title>progress元素在下载中的使用</title> <style type="text/css"> body { font-size:13px} p {padding:0px; margin:0px } .inputbtn { border:solid 1px #ccc; background-color:#eee; line-height:18px; font-size:12px } </style> </head> <body> <p id="pTip">开始下载</p> <progress value="0" max="100" id="proDownFile"></progress> <input type="button" value="下载" class="inputbtn" onClick="Btn_Click();"> <script type="text/javascript"> var intValue = 0; var intTimer; var objPro = document.getElementById('proDownFile'); var objTip = document.getElementById('pTip'); //定时事件 function Interval_handler() { intValue++; objPro.value = intValue; if (intValue >= objPro.max) { clearInterval(intTimer); objTip.innerHTML = "下载完成!"; } else { objTip.innerHTML = "正在下载" + intValue + "%"; } } //下载按钮单击事件 function Btn_Click(){ intTimer = setInterval(Interval_handler, 100); } </script> </body> </html>
为了使progress元素能动态展示下载进度,需要通过JavaScript代码编写一个定时事件。在该事件中,累加变量值,并将该值设置为progress元素的“value”属性值。当这个属性值大于或等于progress元素的“max”属性值时,则停止累加,并显示“下载完成!”字样,否则,动态显示正在累加的百分比数,如图1.11所示。

图1.11 progress元素示例
4.meter元素
meter元素用于表示在一定数量范围中的值,如投票中候选人各占比例情况及考试分数等。
举例:
<!doctype html> <html> <head> <meta charset="utf-8" /> <title>meter元素</title> <style type="text/css"> body { font-size:13px } </style> </head> <body> <p>共有200人参与投票,投票结果如下:</p> <p>王兵: <meter value="30" optimum="100" high="90" low="10" max="100" min="0"> </meter> <span> 30% </span></p> <p>李明: <meter value="70" optimum="100" high="90" low="10" max="100" min="0"> </meter> <span> 70% </span> </p> </body> </html>
候选人“李明”所占的比例是百分制中的70,最低比例可能为0,但实际最低为10;最高比例可能为100,但实际最高为90,如图1.12所示。

图1.12 meter元素示例
1.3 .4 新增的嵌入多媒体元素与交互性元素
HTML5新增了很多多媒体元素和交互性元素,如video、 audio。如果要在HTML4中嵌入一个视频或音频,需要引入一大段代码,还要兼容各个浏览器,而HTML5只需要引入一个标签就可以实现,就像<img>标签一样方便。
1.video元素
video元素用于定义视频,如电影片段或其他视频流。
HTML5代码示例:
<video src="movie.ogg" controls="controls">video元素</video>
HTML4代码示例:
<object type="video/ogg" data="movie.ogv"> <param name="src" value="movie.ogv"> </object>
2.audio元素
audio元素用于定义音频,如音乐或其他音频流。
HTML5代码示例:
<audio src="someaudio.wav">audio元素</audio>
HTML4代码示例:
<object type="application/ogg" data="someaudio.wav"> <param name="src" value="someaudio.wav"> </object>
3.embed元素
embed元素用来插入各种多媒体,格式可以是MIDI、WAV、AIFF、AU、MP3等。
HTML5代码示例:
<embed src="horse.wav" />
HTML4代码示例:
<object data="flash.swf"type="application/x-shockwave-flash"></object>
1.3 .5 新增的input元素的类型
在制作网站页面的时候,难免会遇到表单开发,用户输入的大部分内容都是在表单中完成并提交到后台的。HTML5也提供了大量的表单功能。
HTML5对input元素进行了大幅度的改进,我们可以简单地使用这些新增的元素来实现以往需要JavaScript才能实现的功能。
1.url类型
input元素里的url类型是一种专门用来输入url地址的文本框。如果该文本框中内容不是url地址格式的文字,则不允许提交。例如:
<form> <input name="urls" type="url" value="url"/> <input type="submit" value="提交"/> </form>
设置此类型后,从外观上来看与普通元素差不多,如图1.13所示。可是将此类型放到表单中后,单击“提交”按钮,如果此文本框中输入的不是URL地址,将无法提交。

图1.13 url类型示例
2.email类型
如果将上面的URL类型代码中的type修改为email,那么在表单提交的时候会自动验证此输入框中的内容是否为email格式,如果不是,则无法提交。代码如下:
<form> <input name="email" type="email" /> <input type="submit" value="提交"/> </form>
其外观如图1.14所示。

图1.14 email类型示例
3.date类型
input元素里的date类型在开发网页过程中是很常见的。例如,我们经常看到的购买日期、发布时间、订票时间等。date类型的时间采用的是日历的形式,方便用户输入,如图1.15所示。
<form> <input id="lykongtiao _date" type="date"/> <input type="submit" value="提交"/> </form>
在HTML4中,需要结合使用JavaScript才能实现日历选择日期的效果。在HTML5中,只需要设置input为date类型即可,提交表单的时候也不需要验证数据。

图1.15 date类型示例
4.time类型
input里的time类型是专门用来输入时间的文本框,并且在提交时会检查输入时间的有效性。它的外观可能会根据不同类型的浏览器而呈现不同的形式。
<form> <input id=" linyikongtiao_time" type="time"/> <input type="submit" value="提交"/> </form>
time类型是用来输入时间的,在提交的时候检查是否输入了有效的时间。其外观如图1.16所示。

图1.16 time类型示例
5.datetime类型
datetime类型是一种专门用来输入本地日期和时间的文本框,同样,它在提交的时候会对数据进行检查。但目前主流浏览器都不支持datetime类型。
<form> <input id="linyikongtiao_datetime" type="datetime"/> <input type="submit" value="提交"/> </form>
1.3 .6 废除的元素
HTML5中废除了很多元素,具体如下。
1.能使用CSS替代的元素
对于basefont、big、center、font、s、strike、tt、u这些元素,因为它们的功能都是纯粹为页面样式服务的,而HTML5提倡把页面样式功能放在CSS样式表中编辑,所以将这些元素废除了。
2.不再使用frame框架相关的元素
对于frameset元素、frame元素与noframes元素,因为frame框架对网页可用性存在负面影响,HTML5已不支持frame框架,只支持iframe框架,所以将以上三个元素废除了。
3.只有部分浏览器支持的元素
对于applet、bgsound、blink、marquee等元素,因为只有部分浏览器支持这些元素,特别是bgsound元素和marquee元素,只能在Internet Explorer浏览器中运行,所以HTML5将这些元素废除了。applet元素可由embed元素或object元素替代,bgsound元素可由audio元素替代,marquee元素可以由JavaScript编程的方式替代。
4.其他被废除的元素
acronym元素,使用abbr元素替代。
dir元素,使用ul元素替代。
isindex元素,使用form元素与input元素相结合的方式替代。
listing元素,使用pre元素替代。
xmp元素,使用code元素替代。
nextid元素,使用GUIDS替代。
plaintext元素,使用“text/plian”MIME类型替代。
1.3 .7 课堂练习——使用记事本手工编写HTML代码
HTML是一款以文字为基础的语言,不需要什么特殊的开发环境,可以直接在Windows自带的记事本中编写。HTML文档以.html为扩展名,将HTML源代码输入到记事本并保存,可以在浏览器中打开文档以查看其效果。
使用记事本编写HTML文件的具体操作步骤如下。
01 执行“开始”|“所有程序”|“附件”|“记事本”命令,打开记事本,即可编写HTML代码,如图1.17所示。

图1.17 编辑HTML代码
02 编辑完成HTML文件后,执行“文件”|“保存”命令,弹出“另存为”对话框,将它存为扩展名为.htm或.html的文件即可,如图1.18所示。

图1.18 【另存为】对话框
03 单击“保存”按钮,保存文档。打开网页文档,在浏览器中预览,效果如图1.19所示。

图1.19 浏览效果
提示
任何文字处理器都可以用来处理HTML代码,但必须记住,要以.html的扩展名对其进行保存。