`
java378656992
  • 浏览: 40467 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

HTML 5的革新:结构之美

 
阅读更多

本文从页面的doctype说起,到用HTML 5新标签搭建语义化更明确的页面的结构,再解释了一番与页面结构相关的新标签。相信大家对HTML 5的结构性新标签有了一个新的认知,如果你有兴趣,那就打开你的IDE,写上一段由HTML 5新标签搭建的代码,然后用CSS去描绘你的宏伟蓝图吧!

AD: <script src="http://www.51cto.com/js/article/keywords_ad_new.js"></script>

 

HTML 5如同一场革命,正在Web2.0后时代轰轰烈烈的进行着。

51CTO推荐专题:HTML 5 下一代Web开发标准详解

HTML 5是什么,无须我在这里赘述了。对于HTML 5的革新,按我的理解,可以总结为语义明确的标签体系、化繁为简的富媒体支持、神奇的本地数据存储技术、不需要插件的富动画(canvas)、强大的API支持。总之,HTML 5让人机交互,人网交互变得更加舒适,贴合用户。以往对富媒体应用与本存储的支持乏力也不再是浏览器的切肤之痛。将Web从内容平台推向标准化的应用平台,并一统各在平台阵营的标准,才是HTML 5革命的初衷。

本文,我就抛砖引玉,阐述HTML 5的革新之一:语义更明确简洁的结构。

从”头”说起

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

  1. <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
  2. “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> 
  3. <html xmlns=”http://www.w3.org/1999/xhtml”> 
  4. <head> 
  5. <meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ /> 
  6. </head> 

你能记住吗?你会去死记硬背吗?当然不会!我们只需要机械的复制粘贴即可。

再看看一个标准的HTML 5头部是如何的:

  1. <!doctype html> 
  2. <meta charset=gb2312> 

孰繁孰简,就不用我说了。是的,HTML 5的头部可以如此简单,可以轻易的记住!并且,可以忽略大小写,引号以及最后一个尖括号前的反斜线。

为什么可以如此松散?其实,如果把XHTML当成text/html发送,浏览器一样可以很好的解析,浏览器并不在乎代码的语法。所以,HTML 5是形而上的,它可能会破坏原有的一些标准,但仍可在浏览器中很好的表现。

当然,为了团队协助与后续维护的方便,我们还是应该统一一种你喜欢的风格的写法,比如:

  1. <!doctype html> 
  2. <html> 
  3. <head> 
  4. <meta charset=”gb2312″ /> 
  5. …  
  6. </head> 
  7. <body> 
  8. …  
  9. </body> 
  10. </html> 

另外,HTML 5虽然目前并不为所有浏览器所支持,但这个能省去100多字节(对于日PV百万级以上的站点,能省下不少的流量哦)的头部已可以完美的兼容了。如果你对浏览器解析模式有研究的话,你应该知道,页面在没有定义doctype的情况下会触发怪异模式,而只要定义了浏览器就可以在标准模式下解析页面,而不需要指定某个类型的DTD。

新的语义化标签体系

语义化编码是一个合格前端Developer必备的技能,但随着网页的日渐丰富化,仅仅用原有的xhtml标签去语义化显然已经力不从心。上帝说:”要有光!”便有了光。于是,HTML 5提供了一系列新的标签及相应属性,以反应现代网站典型语义。实践出真理。还是写一个例子吧:

  1. <div id=”header”> 
  2. <div class=”hgroup”> 
  3. <h1>网站标题</h1> 
  4. <h1>网站副标题</h1> 
  5. </div> 
  6. <div id=”nav”> 
  7. <ul> 
  8. <li>HTML 5</li> 
  9. <li>CSS</li> 
  10. <li>JavaScript</li> 
  11. </ul> 
  12. </div> 
  13. </div> 
  14. <!–//header end–> 
  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. <!–//left end–> 
  24. <div id=”aside”> 
  25. <h1>作者简介</h1> 
  26. <p>Mr.Think,专注Web前端技术的凡夫俗子。</p> 
  27. </div> 
  28. <!–//side end–> 
  29. <div id=”footer”> 
  30. 页面的底部  
  31. </div> 
  32. <!–//footer end–> 

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

  1. <header> 
  2. <hgroup> 
  3. <h1>网站标题</h1> 
  4. <h1>网站副标题</h1> 
  5. </hgroup> 
  6. <nav> 
  7. <ul> 
  8. <li>HTML 5</li> 
  9. <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手册列出的结构类常用新标签的语义解释及使用指引:

<header>标签

手册释义:定义 section 或 document 的页眉。

使用指引:一般用来包含页面头部,也可用于其他区域头部,比如article头部:

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

<hgroup>标签

手册释义:用于对网页或区段(section)的标题进行组合。

使用指引:用于标题类的组合,比如文章的标题与副标题:

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

<nav>标签

手册释义:定义导航链接的部分。

使用指引:用于定义页面的导航部分:

  1. <nav> 
  2. <ul> 
  3. <li>HTML 5</li> 
  4. <li>CSS</li> 
  5. <li>JavaScript</li> 
  6. </ul> 
  7. </nav> 

<aside>标签

定义 article 以外的内容。aside 的内容应该与 article 的内容相关。

使用指引:用于成节的内容,会在文档流中开始一个新的节,一般用于与文章内容相关的边栏:

  1. <aside> 
  2. <h1>作者简介</h1> 
  3. <p>Mr.Think,专注Web前端技术的凡夫俗子。</p> 
  4. </aside> 

<section>标签

手册释义:定义文档中的节(section)。比如章节、页眉、页脚或文档中的其他部分。

使用指引:用于成节的内容,会在文档流中开始一个新的节:

  1. <section> 
  2. <h1>section是什么?</h1> 
  3. <h2>一个新的章节</h2> 
  4. <article> 
  5. <h2>关于section</h1> 
  6. <p>section的介绍</p> 
  7. …  
  8. </article> 
  9. </section> 

<footer>标签

手册释义:定义 section 或 document 的页脚。典型地,它会包含创作者的姓名、文档的创作日期以及/或者联系信息。

使用指引:一般用来包裹整个页面通用底部,也可用于其他区域底部,比如article底部:

  1. <footer> 
  2. COPYRIGHT@ieFans.Net  
  3. </footer> 

<article>标签

手册释义:定义外部的内容。比如来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文

本。亦或是来自其他外部源内容。

使用指引:顾名思义,一般用于文章区块:

  1. <article> 
  2. <header> 
  3. <hgroup> 
  4. <h1>这是一篇介绍HTML 5结构标签的文章</h1> 
  5. <h2>HTML 5的革新</h2> 
  6. </hgroup> 
  7. <time datetime=”2011-03-20″>2011.03.20</time> 
  8. </header> 
  9. <p>文章内容详情</p> 
  10. </article> 

<figure>标签

手册释义:用于对元素进行组合。

使用指引:多用于图片与图片描述组合:

  1. <figure> 
  2. <img src=”img.gif” alt=”figure标签”  title=”figure标签” /> 
  3. <figcaption>这儿是图片的描述信息</figcaption> 
  4. </figure> 

<menu>标签

手册释义:定义菜单列表。当希望列出表单控件时使用该标签。

使用指引:使用于菜单类区块,用来定义菜单列表或菜单选项:

  1. <menu> 
  2. <li>HTML 5</li> 
  3. <li>CSS</li> 
  4. <li>JavaScript</li> 
  5. </menu> 

HTML 5的其他新标签,就不此一一解释了,请自行查询一下手册。

其实,这些东西,如同XHTML的div、h1、inpu等标签一样,只要平时多加实践,运用自如也是轻而易举的。

关于兼容性

如果你是一个喜欢研究关注前端的人,你应该知道淘宝的页面结构中已大量用到了HTML 5新标签。所以,我想说的是只要敢于尝试,兼容性不是问题,兼容的方法,网上有很多(本文是讲结构的,哈~)。

后话

任何一门新技术,都需要一个适应的过程。如果你准备好了做一名优秀的Web前端开发人员,那你就得不断的尝试并接受最新的前端技术。

孙文曾说,欲经文明这幸福,不得不经文明之痛苦。人类的革命如此,HTML 5的革命亦是如此。IE的日渐没落,让各大浏览器厂商以一次进入了战国时代,群雄逐鹿。而对于开发者,我们只奢求各大浏览器厂商尽可能的遵循同一个标准,而不是群雄逐鹿后的四分五裂。因为,高效完美的呈现给各类用户同样的应用才是我们的终极目标。

如此,本文从页面的doctype说起,到用HTML 5新标签搭建语义化更明确的页面的结构,再解释了一番与页面结构相关的新标签。相信大家对HTML 5的结构性新标签有了一个新的认知,如果你有兴趣,那就打开你的IDE,写上一段由HTML 5新标签搭建的代码,然后用CSS去描绘你的宏伟蓝图吧!
 

原文链接:http://www.iefans.net/html5-jiegou-zhimei/

分享到:
评论

相关推荐

    HTML5的革新:结构之美

    ### HTML5的革新:结构之美 #### 前言 HTML5作为新一代的网页标准,不仅带来了更加丰富和直观的用户体验,也在结构上实现了重大的革新。这些革新体现在多个方面,包括但不限于语义化标签、简化语法、以及更加灵活...

    HTML5的革新 结构之美

    HTML5的革新主要体现在对网页结构的改进,增强了语义化的标签体系,简化了文档类型声明,以及提供了更丰富的功能支持。这场革命旨在提升用户体验,推动Web从内容展示平台转变为标准化的应用平台,打破不同平台之间的...

    分享最好的HTML5编码教程和参考手册

    - **Structural Tags in HTML5**:专注于HTML5结构性标签的使用教程。 - **HTML5 and CSS3 - Tricks You’ll Be Using Soon**:演示如何使用HTML5和CSS3开发博客页面,强调了未来标准的实践应用。 - **Design an ...

    基于微信小程序的美甲系统的设计与实现 计算机科学和技术专业.docx

    - **系统开发目的**:本项目旨在通过开发一个基于微信小程序的美甲系统,实现对传统美甲业务模式的革新。该系统的目标是提高美甲师的工作效率,减轻其工作压力,并减少由于人为失误造成的错误。 - **系统开发意义**...

    html-css:Curso em视频

    在HTML5的学习中,你将掌握如何创建有效的文档结构,组织页面内容,以及利用新元素提高用户体验。同时,课程可能会涵盖离线存储(Web Storage和Service Worker)、拖放功能、地理定位等高级特性。 CSS3则带来了许多...

    Post-punk

    此外,HTML中的语义化标签如`&lt;header&gt;`, `&lt;nav&gt;`, `&lt;article&gt;`等,强调了内容的结构和逻辑,这与后朋克音乐中复杂的编曲结构有异曲同工之妙。通过合理的标签使用,不仅可以提高网页的可读性和可访问性,还能传达出一...

    《架构师》电子月刊2010年10月刊PDF电子书

    虚拟研讨会讨论了HTML5的最新JavaScript框架,反映了前端开发领域的技术革新,以及HTML5在网页开发中的核心地位。 ### 新品推荐 本期新品推荐涵盖了多个领域,如Adobe为Flash Builder发布的ActionScript代码覆盖...

    2022年应届生计算机专业求职自荐信.docx

    在哈尔滨XXXX学院度过的三年大专生活中,我专注于网络专业的学习,系统地掌握了C语言、数据结构、网页设计、计算机组成与原理、网络技术和数据库原理等核心课程。在理论学习的同时,我也积极参与实践,熟练运用Word...

    2022年工作报告,2022计算机实习月记.docx

    在实习期间,实习生深入理解了计算机技术的发展趋势,特别是计算机的智能化、感知能力和交互设备的革新。实习内容涵盖了互联网技术,尤其是互联网如何深刻地改变着我们的生活、工作和交流方式。 【互联网技术】 ...

Global site tag (gtag.js) - Google Analytics