H?t?m?l?5? ?学?习?:?H?T?M?L?5?新?增?结?构?标?签

引言

在本节中,笔者将向大家讲述三部分内容,分别介绍HTML5时代的召唤,跟HTML4的区别,以及HTML5中带来的新的结构标签。

  • HTML5时代的召唤
  • HTML4与HTML5的区别
  • HTML5新结构标签

HTML5时代的召唤

  上一代的HTML的标准: HTML 4.01 和 XHTML 1.0 距离今天已经发布了10多年了,而Web端的应用也已经翻天覆地的变换。而且Web前端没有一个统一的通用的互联网标准,各个浏览器间拥有太多的不兼容,在维护这些浏览器兼容性浪费了太多的时间。再有就是之前的多媒体操作、动画等都需要第三方的插件的支持,而这就造成多平台的兼容性的问题,而这一切在HTML5中都将成为标准,这样就在根本上解决了浏览器的差异以及一些第三方插件的问题,让Web应用更加标准,通用性更强,而且更加的独立于设备。

HTML5并不是革命性的改变,而只是发展性的。而且对于之前HTML4的很多标准都是兼容的,所有通过最新HTML5标准制作的Web应用也可以轻松的跑在老版本的浏览器上。HTML5标准中的确是集成了很多实用的功能比如:音视频、本地存储、Socket通信、动画等都是之前应用开发中确实感觉到Web端的鸡肋才得到重视和升级的,相信如果你有相关的经验的话也会很有感触。

HTML5的目标是:它通过一些新标签,新功能为开发更加简、独立、标准的通用Web应用提供了标准。新的标准解决了三大问题:浏览器兼容问题,解决了文档结构不明确的问题,解决了Web应用程序功能受限等问题。

HTML4与HTML5的区别

1、取消了一些过时的 HTML4的标签

其中包括纯粹显示效果的标记,如<font>和<center>,它们已经被 CSS完全取代。

其他取消的属性:acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, strike, tt。

2、添加了一些新的元素

比如:更加智能的表单标签:date, email, url  等;更加合理的标签:section, video, progress, nav, meter, time, aside, canvas等。

3、新的全局属性:id, tabindex, repeat 

4、文件类型声明(<!DOCTYPE>)仅有一型:<!DOCTYPE HTML>。

5、新的JS API

还有很多其他的变化,后续的系列博文中我将一一介绍。

HTML5的新结构标签

  在之前的HTML页面中,大家基本上都是用了Div+CSS的布局方式。而搜索引擎去抓取页面的内容的时候,它只能猜测你的某个Div内的内容是文章内容容器,或者是导航模块的容器,或者是作者介绍的容器等等。也就是说整个HTML文档结构定义不清晰,HTML5中为了解决这个问题,专门添加了:页眉、页脚、导航、文章内容等跟结构相关的结构元素标签。

在讲这些新标签之前,我们先看一个普通的页面的布局方式:

  上图中我们非常清晰的看到了,一个普通的页面,会有头部,导航,文章内容,还有附着的右边栏,还有底部等模块,而我们是通过class进行区分,并通过不同的css样式来处理的。但相对来说class不是通用的标准的规范,搜索引擎只能去猜测某部分的功能,另外就是此页面程序交给视力障碍人士来阅读的话,文档结构和内容也不会很清晰。而HTML5新标签带来的新的布局则是下面这种情况:  

相关的HTML代码是:

<body>

  <header>...</header>

  <nav>...</nav>

  <article>

    <section>

      ...

    </section>

  </article>

  <aside>...</aside>

  <footer>...</footer>

</body>

有了上面的直接的感官的认识后,我们下面一一来介绍HTML5中的相关结构标签。

section标签

<section>标签,定义文档中的节。比如章节、页眉、页脚或文档中的其它部分。一般用于成节的内容,会在文档流中开始一个新的节。它用来表现普通的文档内容或应用区块,通常由内容及其标题组成。但section元素标签并非一个普通的容器元素,它表示一段专题性的内容,一般会带有标题。
当我们描述一件具体的事物的时候,通常鼓励使用article来代替section;当我们使用section时,仍然可以使用h1来作为标题,而不用担心它所处的位置,以及其它地方是否用到;当一个容器需要被直接定义样式或通过脚本定义行为时,推荐使用div元素而非section。

<section>

<h1>section是什么?</h1>

<h2>一个新的章节</h2>

<article>

<h2>关于section</h1>

<p>section的介绍</p>

...

</article>

</section>

article标签

<article>是一个特殊的section标签,它比section具有更明确的语义,它代表一个独立的、完整的相关内容块,可独立于页面其它内容使用。例如一篇完整的论坛帖子,一篇博客文章,一个用户评论等等。一般来说,article会有标题部分(通常包含在header内),有时也会包含footer。article可以嵌套,内层的article对外层的article标签有隶属关系。例如,一篇博客的文章,可以用article显示,然后一些评论可以以article的形式嵌入其中。

<article>

<header>

<hgroup>

<h1>这是一篇介绍HTML 5结构标签的文章</h1>

<h2>HTML 5的革新</h2>

</hgroup>

<time datetime="2011-03-20">2011.03.20</time>

</header>

<p>文章内容详情</p>

</article>

nav标签

nav标签代表页面的一个部分,是一个可以作为页面导航的链接组,其中的导航元素链接到其它页面或者当前页面的其它部分,使html代码在语义化方面更加精确,同时对于屏幕阅读器等设备的支持也更好。

<nav>

<ul>

<li>厚德IT</li>

<li>FlyDragon</li>

<li>J飞龙天惊</li>

</ul>

</nav>

aside标签

aside标签用来装载非正文的内容,被视为页面里面一个单独的部分。它包含的内容与页面的主要内容是分开的,可以被删除,而不会影响到网页的内容、章节或是页面所要传达的信息。例如广告,成组的链接,侧边栏等等。

<aside>

<h1>作者简介</h1>

<p>厚德IT</p>

</aside>

header标签

<header>标签定义文档的页眉,通常是一些引导和导航信息。它不局限于写在网页头部,也可以写在网页内容里面。

通常<header>标签至少包含(但不局限于)一个标题标记(<h1>-<h6>),还可以包括<hgroup>标签,还可以包括表格内容、标识、搜索表单、<nav>导航等。

<header>

<hgroup>

<h1>网站标题</h1>

<h1>网站副标题</h1>

</hgroup>

</header>

footer标签

footer标签定义section或document的页脚,包含了与页面、文章或是部分内容有关的信息,比如说文章的作者或者日期。作为页面的页脚时,一般包含了版权、相关文件和链接。它和<header>标签使用基本一样,可以在一个页面中多次使用,如果在一个区段的后面加入footer,那么它就相当于该区段的页脚了。

<footer>

[email protected]厚德IT

</footer>

hgroup标签

hgroup标签是对网页或区段section的标题元素(h1-h6)进行组合。例如,在一区段中你有连续的h系列的标签元素,则可以用hgroup将他们括起来

<hgroup>

<h1>这是一篇介绍HTML 5结构标签的文章</h1>

<h2>HTML 5的革新</h2>

</hgroup>

figure 标签

用于对元素进行组合。多用于图片与图片描述组合。

<figure>

<img src="img.gif" alt="figure标签"  title="figure标签" />

<figcaption>这儿是图片的描述信息</figcaption>

</figure>

总结:

有了新的结构性的标签的标准,让HTML文档更加清晰,可阅读性更强,更利于SEO,也更利于视障人士阅读。

HTML5旋风来了,你准备好了吗?

当然以上只是笔者的观点,每个人都有阅读新技术的角度,欢迎大家转载讨论。

参考书:《HTML5与CSS3权威指南》

参考网址:

http://www.alistapart.com/articles/previewofhtml5

http://coding.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/

http://www.w3school.com.cn

http://zh.wikipedia.org/wiki/HTML5

http://www.rainleaves.com/html/1338.html

H?t?m?l?5? ?学?习?:?H?T?M?L?5?新?增?结?构?标?签

时间: 2024-10-11 15:21:04

H?t?m?l?5? ?学?习?:?H?T?M?L?5?新?增?结?构?标?签的相关文章

F?l?e?x?4?+?s?p?r?i?n?g?+?h?i?b?e?r?n?a?t?e?+?B?l?a?z?e?D?S?整合案例

http://wenku.baidu.com/link?url=7v5xAyD2nvChQRT60QewpvAASFHMZNvD0OxX11OASYvae8jbVNsr5I000TwwYOlChzq05c50utxcLVb6mRL_r1pSFM1QZ2p9hJvRnpeT-T7 前提是系统安装好flex插件,Myeclipse,jdk,tomcat,并将flex插件集成到Myeclipse中 http://hi.baidu.com/xzwangyu/item/5bdc91c3c3439d3108

对?O?p?e?n?C?V?直?方?图?的?数?据?结?构?C?v?H?i?s?t?o?g?r?a?m?的?理?解

前几天被OpenCV的直方图的数据结构CvHistogram弄得很纠结.上网一搜,也没什么相关的资料.现在有点头绪了,就写点东西,让后面的人好走一些吧. 先来看看CvHistogram的定义: typedef struct CvHistogram { int     type; CvArr*  bins; float   thresh[CV_MAX_DIM][2];  /* For uniform histograms.                      */ float** thres

In file included from adlist.c:34:0: zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

我报错是这样子的,然后老师打了一条命令[[email protected] redis-3.0.6]# makecd src && make allmake[1]: 进入目录"/root/lnmp_soft/redis-3.0.6/src"CC adlist.oIn file included from adlist.c:34:0:zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录#include <jemall

./ViewController.h:9:9: fatal error: &#39;UIKit/UIKit.h&#39; file not found

clang编译的两种方法 1.使用绝对路径: clang -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk xx/xx/y.m(文件的绝对路径) 通过上述命令即可编译通过 2.修改全局变量 vim ~/.bash_profile 在终端输入i键入 alias rewriteo

解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”

centos64位编译32位代码,出现/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录,需要安装32位的glibc库文件. 安装32位glibc库文件命令: sudo yum install glibc-devel.i686(安装C库文件) sudo dnf install glibc-devel.i686(fedora命令) 安装32位glibc++库文件命令 sudo  yum install libstdc++-dev

C语言合并两个集合(L,L1) 将L1中不在L中的元素插入到L线性表中

void main(){ Sqlist L,L1; InitList(&L); InitList(&L1); ListInsert(&L, 1, 2); ListInsert(&L, 2, 3); ListInsert(&L, 1, 1); ListInsert(&L1,1,1); ListInsert(&L1,2,2); ListInsert(&L1,3,4); for (int i = 0; i <L1.length; i++) {

小故事学设计模式之Decorate: (二)老婆的新衣服

老婆有一件蓝色的裙子和一件粉色的裙子, 不管怎么穿,她还是原来的老婆. 但是在软件里就不一定了, 如果把老婆比作一个class的话, 有一种做法是会因为增加了两个新的Property而继承出两个子类: "穿裙子的老婆, 穿粉色上衣的老婆". 你这样弄出两个子类也没什么不对, 问题是当MM的有上百件服装的时候,就会产生上百个子类,这个不好,将来万一父类一变化,下面上百个子类都要一个个地去修改,太乱了. 有一个更合理的方式来解决这个"老婆的装饰问题".我们的要求是:  

句子:勤学如春起之苗,不见其增,日有所长

勤学如春起之苗,不见其增,日有所长: 辍学如磨刀之石,不见其损,日有所亏. 陶渊明劝学的故事 话说陶渊明隐居田园后,乡邻中有个读书少年向他求教说:“老先生,我非常敬佩您的渊博知识,不知你在少年读书时有什么妙法?小辈愿听指教,以开矛塞.” 陶渊明一听这少年是向他讨学习妙法的,先是掩面捋须哈哈大笑:“没听说天下还有什么学习妙法,荒唐,荒唐!” 突然,他收住了笑声,觉得对晚辈后生的幼稚岂能一笑了之,而应循循善诱.于是,他严肃地对少年说:“学习是绝无妙法的,而只有笨法,常言道:‘书山有路勤为马’,勤学则

编译redis时报错zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:

如果有MALLOC这环境变量,会有用这个环境变量的去建立Redis.而且libc并不是默认的内存分配器, 默认是jemalloc,因为jemalloc被证明比libc有更少的fragmentation problems.但是如果没有jemalloc 而只有libc会make出错.所以解决方法有如下两种: (1)指定参数: make MALLOC=libc (2)安装jemalloc:jemalloc干了malloc干的活,而且干得好一些,主要体现在避免内存碎片与并发扩展上. 下载jemalloc