`
gaozzsoft
  • 浏览: 427089 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

HTML 5入门--从零开始构建HTML 5 Web页面

阅读更多
HTML 5有何不同?这个新的Web标准都新增了那些标记?它将如何改变我们现有的Web开发?本文将向您详细解答这些问题并用实例打造一个完整的HTML 5 Web页面。

HTML 5是时下Web开发领域炒得火热的一个术语,是的,很多人都看好它,也有很多业内知名公司开始正式使用HTML 5重新构建自己的网站,如YouTube开始使用HTML 5视频,Google已经弃用自家的Gears,开始全面拥抱HTML 5实现离线解决方案,各大浏览器厂家也纷纷开始支持HTML 5,连被人诟病的微软也声称要在IE 9中增加对HTML 5的支持。本文打算为大家详细介绍一下如何构建一个完整的HTML 5 Web页面,以加深对HTML 5的理解。

HTML 5有何不同?

首先我们要明白HTML 5是新的语义结构标记,包括画布,离线存储规范和一些新的内联语义标记,但由于客观原因(主要是浏览器支持的原因),我们不得不限制标记的讨论范围,如画布,离线存储,原生视频或地理定位API等,还不是所有的浏览器都支持。

由于新的HTML 5标记大都是结构性的,它们的行为与块元素有些类似,为了帮助大家加深对HTML 5的理解,我将在下面的内容使用一些新的结构元素。

每个人都应该记住的doctype(文档类型)

要创建HTML 5 Web页面的第一件事情是使用新的doctype,你一定记住了HTML 4或XHTML 1.x的doctype,当我们要从旧的文档通过复制粘贴到新的文档中,必须要修改doctype,请记住,下面就是HTML 5的doctype:

<!DOCTYPE html> 还是很容易记住吧,而且也不区分大小写,与现在广泛使用的版本要简单得多了,而且保持了向后兼容。

语义结构

在深入标记前,我们先初略看一下一个Web页面的大致结构吧。

<html>     <head>     ...stuff...      </head>     <body>         <div id="header">             <h1>My Site</h1>         </div>         <div id="nav">             <ul>                 <li>Home</li>                 <li>About</li>                 <li>Contact</li>             </ul>         </div>         <div id=content>             <h1>My Article</h1>             <p>...</p>         </div>         <div id="footer">             <p>...</p>         </div>     </body> </html> 在上面的例子中,我为所有DIV标记增加了ID,相信大多数Web设计师都很熟悉这种做法了,这么做有两个目的,首先,ID提供了一个钩子,通过它可以对页面的特定部分应用样式,其次,ID作为一种原始的,伪语义结构,智能解析器将查找标签上的ID属性,并尝试猜测其含义,但这是一件很困难的事情,因为每个网站的ID可能都不一样。

于是就有了增加新标签的想法,HTML 5的创造者们就设计了一些新的元素,下面我们就来看看HTML 5中新增的一些关键的结构性标记。

◆ <header>

这个标记计划用来描述一节或一个完整Web页面的介绍性信息,<header>标记可以包括所有的通常放在页面头部的标志,如果你在页面中使用了<div id="header">,它将被<header>取代。

◆ <nav>

这个元素的含义就不说了,你的导航元素就放在这里,如主站点导航,但在某些情况下也可能有页面导航元素,HTML 5的创建人WHATWG最近修改了<nav>的解释,展示了如何在一个页面上使用两次。有关nav更多的讨论,可以参考:http://www.zeldman.com/2009/07/13/html-5-nav-ambiguity-resolved/。

简单说来,如果你在页面中使用了<div id="nav">标记来容纳导航元素,那么你可以使用<nav>进行替换。

◆ <section>

这个可能是最模糊不清的标记了,按照HTML 5规范的解释,一个section是一个有主题的内容组,前面通常有一个header标记,后面通常跟一个footer标记,如果需要,section也可以嵌套使用。

在我们上面的例子中,标记为“content”的DIV是section的一个很好候选者,在这个section中,根据内容的不同,我们可能有更多的section。

◆ <article>

根据WHATWG的注释,article元素是将section进行打包形成一个文档或网站独立的部分,例如一篇杂志或报纸文章,或一篇博客文章。

记住,在一个页面中可以有多个article元素,例如一个博客首页可能会有10多个article元素,article也可以进入section元素,因此你在嵌套使用时需要小心,可能一不小心就会出错。

◆ <aside>

另一个模糊不清的标记是aside,这个元素表现的是与文档主要文本流无关的内容,也就是相当于一个括号备注,脚注,引用,注释,或者说是类似于侧边栏的东西,根据WHATWG的注释,<aside>可以用于所有这些情况。

◆ <footer>

Footer的含义也非常清楚,它可以用在section中,也可以用于一个页面的底部。
=================================================================
HTML 5有何不同?这个新的Web标准都新增了那些标记?它将如何改变我们现有的Web开发?本文将向您详细解答这些问题并用实例打造一个完整的HTML 5 Web页面。(二)
全部放在一起

现在我们全部使用新标记重写前面的示例页面。

<!DOCTYPE html> <html>     <head>     ...stuff...      </head>     <body>         <header>             <h1>My Site</h1>         </header>         <nav>             <ul>                 <li>Home</li>                 <li>About</li>                 <li>Contact</li>             </ul>         </nav>         <section>             <h1>My Article</h1>             <article>                 <p>...</p>             </article>         </section>         <footer>             <p>...</p>         </footer>     </body> </html> 是不是更干净,更易于理解呢?我们可以把<h1>My Article</h1>打包到header标记中。另外请注意,我们可以在article元素下再增加一个footer元素,用来容纳如翻页导航,相关文章或其它内容。

新标记的样式

在大多数浏览器中,你只需要如往常一样对元素使用样式,但是请一定要对每个元素加上display:block;规则,随着时间的推移,浏览器对HTML 5新元素的支持越来越标准后,就可以不使用了。

下面我们队header应用一些样式:

header {      display: block;      font-size: 36px;      font-weight: bold;  } 记住,你现在仍然可以在这些元素上添加class和ID属性,因此,如果你想对导航小节单独使用一个样式,你可以向下面这样增加一个class或ID属性:

<nav class="main-menu"> 然后再应用一个样式:

nav.main-menu {      font-size: 18px;  } 与旧浏览器的兼容

这些样式都不能在IE 6下使用,如果你坚持要保持与旧浏览器兼容,也是有补救办法的,IE 6可以解析这些标记,但不能应用样式,解决办法就是使用JavaScript,使用createElement方法就可以让IE支持HTML 5标记的样式了,你可以在HTML 5文件的头部包括这段代码,也可以保存到一个独立文件中,然后进行引用。

<script>   document.createElement('header');    document.createElement('nav');    document.createElement('section');    document.createElement('article');    document.createElement('aside');    document.createElement('footer');  </script>
你可能要问,为什么没有给这段脚本指定MIME类型呢?在HTML 5中无需指定了,在HTML 5中,所有的脚本都假设是type="text/javascript",因此不必再多此一举了。

虽然IE的问题得到了解决,但据我所知,Firefox 2中的Gecko渲染引擎仍然存在一个bug,解决办法有两个,但这两个办法都不是很理想,更多信息请看这里http://html5doctor.com/how-to-get-html5-working-in-ie-and-firefox-2/。考虑到Firefox 2的使用人数已经很少,你可以完全忽视这个bug。

现在你已经可以使用HTML 5了,但应该使用吗?

答案很简单:是的!

但这也要根据网站的性质做出调整,例如,假设你要重构CNN主页,那可能不太现实,最好还是等浏览器的支持更好一些再说,但如果你是在翻新你的博客系统,那么你可以一试,如果你使用的WordPress,目前已经出现了一些插件可以帮助你,这里就有一个HTML 5的WordPress主题。

你也可以去HTML 5画廊(http://html5gallery.com/)瞧瞧,因为它全部是用HTML 5构建的,可以看看其源码,加深对HTML 5标记的理解。还可以继续关注51CTO.com的HTML 5专题,我们会持续更新关于HTML 5的技术应用和资讯报道。

如果你还有点犹豫不决,那你去看看Google的主页,已经是HTML 5了,保险一点的话,你可以使用JavaScript声明这些新标记进行使用。HTML 5的标记远不止这些,希望本文能消除你的疑虑,大胆使用HTML 5,只有使用的人多了,这个规范才能真正见效。
Useful URL: http://developer.51cto.com/art/201002/184382.htm
分享到:
评论

相关推荐

    Web前端入门:从零开始做网站.txt打包整理.zip

    "Web前端入门:从零开始做网站.txt打包整理.zip" 这个标题揭示了我们即将探讨的主题是关于Web前端开发的基础知识,特别适合初学者。"从零开始做网站"表明这份资料将涵盖从无到有创建一个网站的全过程,包括基本概念...

    Django入门开发教程-从零开始搭建第一个Web应用

    内容概要:本文是一份详尽的Django入门开发教程,涵盖了Django的基本概念及其安装方法,详细指导了如何从零开始创建Django项目、启动本地服务器、构建应用模块以及实现数据交互、视图和模板等功能。通过实践,读者将...

    XHTML与CSS入门经典-从零开始

    通过"XHTML与CSS入门经典 从零开始系列教程!"的学习,你可以逐步掌握这些基础知识,并逐步成为一名熟练的Web开发者。从基础开始,不断实践,理解每个概念并将其应用于实际项目,你会发现XHTML和CSS是构建美观、功能...

    从零开始学java web

    本教程“从零开始学Java Web”旨在帮助初学者系统地掌握这一领域的基础知识,从第一章到第十七章,内容全面且详细。下面我们将逐一探讨这些章节可能涵盖的关键知识点。 第一章:Java Web入门 这一章通常会介绍Java ...

    HTML 5从入门到精通

    本教程旨在带你从零开始,逐步掌握HTML5的各项功能和应用,从而实现从入门到精通的过渡。 一、HTML5基础 HTML5的基础包括一系列新的标签、元素和API,它们旨在使网页结构更加清晰,内容更加语义化。例如,`&lt;header&gt;...

    vue实战入门进阶篇:从零开始实现网站后台实例

    本教程将带你逐步进入Vue的世界,通过实战案例,从零开始构建一个网站后台管理系统。 首先,我们从基础开始。Vue的核心概念包括:虚拟DOM、数据绑定、指令、组件等。虚拟DOM允许Vue高效地更新视图,数据绑定使得...

    示例源码--Python Web开发从入门到精通.rar

    这个资源是针对初学者和有一定基础的开发者,旨在通过实例帮助他们从零开始掌握Python Web开发技术。主要知识点包括但不限于以下内容: 1. **Python基础知识**:在进行Web开发之前,你需要了解Python的基础语法,如...

    Web前端攻城狮培养计划-前端零基础入门

    在“Web前端攻城狮培养计划-前端零基础入门”这个学习资源中,你将踏上成为一名优秀的Web前端开发者的旅程。这个课程专为初学者设计,无论你是否具备编程背景,都能逐步掌握Web前端开发的核心技能。以下是这个课程...

    王家林的云计算分布式大数据Hadoop实战高手之路---从零开始Hadoop图文训练课程(第1-10讲).rar

    2. "构建真正的Hadoop分布式集群环境.docx"和".pdf":这两份文档详细指导如何从零开始搭建Hadoop的分布式集群,包括硬件配置、网络设置、Hadoop安装步骤、配置HDFS和MapReduce,以及启动和测试集群。 3. "证明...

    《Web前端入门_从零开始做网站》讲义

    **前端开发概述** 前端开发是构建互联网应用的重要组成部分,它主要负责用户在浏览器中看到和交互的部分。这个领域涵盖了HTML、CSS和...通过深入学习,你可以从零开始构建自己的网站,开启前端开发的职业旅程。

    nlp网站举例HTML零基础入门-HTML学习大纲.doc

    【HTML零基础入门】课程是针对想要学习网页编程的初学者设计的,旨在教授HTML语言的基础知识,让学生能够独立编写网页程序。HTML是超文本标记语言,是网页制作的基础,它通过一系列标签来构建和格式化网页内容。课程...

    JavaWeb基础入门:从零开始构建你的第一个Web应用

    通过学习本文的内容,读者不仅可以快速上手构建自己的首个JavaWeb应用,还能理解JavaWeb背后的机制和原理。 其他说明:本文提供的内容适合自学使用,也可以作为课堂教程的一部分。除了理论讲解外,还包括具体的编码...

    Uni-App从入门到实战教程[视频课程].txt打包整理.zip

    【 Uni-App 从入门到实战教程:一个全面解析的指南】 Uni-App 是一个基于 Vue.js 的跨端开发框架,允许开发者编写一次代码,同时发布到 iOS、Android、Web(H5)、微信小程序、支付宝小程序等多个平台。本教程旨在...

    零基础学习PHP-从零开始学习PHP-PHP基础教程-PHP简明教程.pdf

    ### 零基础学习PHP-从零开始学习PHP-PHP基础教程-PHP简明教程 #### 1. PHP概述 **PHP**(Hypertext Preprocessor,即“超文本预处理器”),是一种广泛使用的开放源代码的多用途脚本语言,尤其适用于Web开发并可...

    从零基础开始入门学习html5、css3、javascript,从初级开始学习前端知识.zip

    HTML5、CSS3和JavaScript是构建现代Web应用的基础技术,对于初学者来说,这是一个极好的起点,能够让你从零开始逐步掌握前端开发的核心知识。在这个压缩包中,“oeasy-html5-tutorial-master”可能是一个教程项目的...

    html5从入门到精通

    通过以上这些资源,你可以系统地学习HTML5的基础知识,掌握前沿的网页开发技能,从零开始一步步成为一名精通HTML5的开发者。无论是构建静态网页还是复杂的Web应用程序,HTML5都为你提供了强大的工具和支持。

    web--bootstrap入门基础笔记

    这个"web--bootstrap入门基础笔记"是专科计算机软件设计专业大二学生在一个月内通过32节90分钟课程学习的总结,适用于从零开始学习的初学者,同时也为有一定经验的开发者提供参考。 首先,Bootstrap的核心概念是...

Global site tag (gtag.js) - Google Analytics