您的位置: 首页 >日志>前端技术>详细内容

前端技术

[转]HTML5的革新:结构之美

来源:本站原创 发布时间:2011-08-24 14:32:43 浏览次数: 【字体:

 

从”头”说起
一个标准的XHTML头部代码应该是这样:

1
2 <html xmlns="">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
5 head>

你能记住吗?你会去死记硬背吗?当然不会!我们只需要机械的复制粘贴即可。
再看看一个标准的HTML 5头部是如何的:

1
2 <meta charset=gb2312>

孰繁孰简,就不用我说了。是的,HTML 5的头部可以如此简单,可以轻易的记住!并且,可以忽略大小写,引号以及最后一个尖括号前的反斜线。
为什么可以如此松散?其实,如果把XHTML当成text/html发送,浏览器一样可以很好的解析,浏览器并不在乎代码的语法。所以,HTML 5是形而上的,它可能会破坏原有的一些标准,但仍可在浏览器中很好的表现。
当然,为了团队协助与后续维护的方便,我们还是应该统一一种你喜欢的风格的写法,比如:

01
02 <html>
03 <head>
04 <meta charset="gb2312" />
05 ...
06 head>
07 <body>
08 ...
09 body>
10 html>

另外,HTML 5虽然目前并不为所有浏览器所支持,但这个能省去100多字节(对于日PV百万级以上的站点,能省下不少的流量哦)的头部已可以完美的兼容了。如果你对浏 览器解析模式有研究的话,你应该知道,页面在没有定义doctype的情况下会触发怪异模式,而只要定义了浏览器就可以在标准模式下解析页面,而不需要指定某个类型的DTD。
新的语义化标签体系
语义化编码是一个合格前端Developer必备的技能,但随着网页的日渐丰富化,仅仅用原有的xhtml标签去语义化显然已经力不从心。上帝说:”要有 光!”便有了光。于是,HTML 5提供了一系列新的标签及相应属性,以反应现代网站典型语义。实践出真理。还是写一个例子吧:

01 <div id="header">
02     <div class="hgroup">
03         <h1>网站标题 h1>
04         <h1>网站副标题 h1>
05      div>
06     <div id="nav">
07         <ul>
08             <li>HTML 5 li>
09             <li>CSS li>
10             <li>JavaScript li>
11          ul>
12      div>
13 div>
14
15 <div id="left">
16     <div class="article">
17         <p>这是一篇讲述HTML 5新结构标签的文章。 p>
18      div>
19     <div class="article">
20         <p>这还是一篇讲述HTML 5新结构标签的文章。 p>
21      div>
22 div>
23
24 <div id="aside">
25     <h1>作者简介 h1>
26     <p>Mr.Think,专注Web前端技术的凡夫俗子。 p>
27 div>
28
29 <div id="footer">
30 页面的底部
31 div>
32

上面是一个简单的博客页面部分HTML,由头部、文章展示区、右侧栏、底部组成。编码整洁,也符合XHTML的语义化,即便是在HTML 5中也可以很好的表现。但是对浏览器来说,这就是一段没有区分开权重的代码,而不是一个让机器也能读懂语义的标签来定义相应的区块。比如,标准浏览器(比 如Firefox、Chroome甚至新版的IE)都有一个快捷键可以带引客户直接跳转到页面的导航,但问题是所有的区块都是用DIV定义,并且DIV的 ID值是同开发者定的,所以,浏览器并不知道哪个应该是导航链接所在区块。HTML 5新标签的出现,正好弥补了这一缺憾。那么,上面的代码,换成HTML 5就可以这样写:

01 <header>
02     <hgroup>
03         <h1>网站标题 h1>
04         <h1>网站副标题 h1>
05      hgroup>
06     <nav>
07         <ul>
08             <li>HTML 5 li>
09             <li>CSS li>
10             <li>JavaScript li>
11          ul>
12      nav>
13 header>
14 <div id="left">
15     <article>
16         <p>这是一篇讲述HTML 5新结构标签的文章。 p>
17      article>
18     <article>
19         <p>这还是一篇讲述HTML 5新结构标签的文章。 p>
20      article>
21 div>
22 <aside>
23     <h1>作者简介 h1>
24     <p>Mr.Think,专注Web前端技术的凡夫俗子。 p>
25 aside>
26 <footer>
27     网页底部
28 footer>

原来,HTML的页面结构可以如此之美,不用注释也能一目了然。对于浏览器,找到对应的区块也不再会茫然无措。
如何用HTML 5新标签结构化元素
通过上面的示例,我们了解到HTML 5的新标签对结构化的革新,但切换到实际使用中,该如何恰当的使用它们呢?我想这也是很多HTML 5学习者想问一个问题。如同XHTML语义化一样,HTML 5语义化标签的使用也应该遵循:每个标签都有它特定的意义,而语义化,就是让我们在适当的位置用适当的标签,以更好的让人和机器(机器可理解为浏览器可理 解为搜索引擎)都一目了然。比如header标签一般是页面的第一个区块元素(header标签也可用于类型的头部元素中,比如文章区块的标题),包含的 了页面的主题信息;nav标签一般用于包裹导航信息;footer一般用来包裹页面底部信息;等等。
下面是我参考HTML 5手册列出的结构类常用新标签的语义解释及使用指引:

标签
手册释义:定义 section 或 document 的页眉。
使用指引:一般用来包含页面头部,也可用于其他区域头部,比如article头部:

1 <header>
2     <hgroup>
3         <h1>网站标题 h1>
4         <h1>网站副标题 h1>
5      hgroup>
6 header>

标签
手册释义:用于对网页或区段(section)的标题进行组合。
使用指引:用于标题类的组合,比如文章的标题与副标题:

1 <hgroup>
2     <h1>这是一篇介绍HTML 5结构标签的文章 h1>
3     <h2>HTML 5的革新 h2>
4 hgroup>

×

用户登录