`
阿尔萨斯
  • 浏览: 4363909 次
社区版块
存档分类
最新评论

【html5】五分钟学会HTML5!(一)

 
阅读更多
语义标签和页面布局

我们首先讲一个关于一所大学的经典故事。这所大学在建设校园草地时,没有开辟任何步行小道,他们把整个空地种上草,然后等待。
一年以后,人们经常走过的地方,草都被踩光了。于是,这所大学就将这些地方铺设为真正的人行道。

棒极了!这些人行道是人们真正“走”出来的。

HTML5新语义元素的诞生正是基于同样的逻辑。(关于这一点,可以参看W3C设计指南中的“Pave the Cowpaths”。)

语义元素清晰地向浏览器和开发人员表明了它们的涵义和用途,要理解这一点,可以将它们与< div>标签进行对比。在HTML文件内,< div>标签能定义出一个分区或者一个小节,但是它无法告诉我们分区里的内容,不能传达任何清晰的涵义。

开发人员通常会将ID或者类名与< div>标签配合使用,这会向程序员传达更多的涵义。但遗憾的是,这并不能帮助浏览器领会那种标签的用途。< div id="header">

在HTML5中,有不少新的富含语义的元素,可以向浏览器和开发人员传达元素的用途。< header>

W3C挖掘了数亿个的Web页面,找出开发人员一直在使用的ID和类名。一旦开发人员抛出div1、div2这些无意义标签,他们就得到了一个描述非常细致的已经在使用的元素的列表,并让其成为W3C的标准设置。

下面是HTML5的一部分新的语义元素:
• article
• aside
• figcaption
• figure
• footer
• header
• hgroup
• mark
• nav
• section
• time

由于这些元素的语义很丰富,相信你可能会猜出其中大部分元素的作用。
为了说得更清楚,下面给出一张图示。



header和footer的作用不言自明,nav将创造一个导航条或者菜单条。此外,你可以用section和article将页面内容分为几个部分。最后,aside元素用来安置附带的内容,比如说,以边栏的形式放上一些相关链接。

下面是一个简单的例子,其中的代码就用到了这些元素。
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>Title</title>
  6. <link href="css/html5reset.css" rel="stylesheet" />
  7. <link href="css/style.css" rel="stylesheet" />
  8. </head>
  9. <body>
  10. <header>
  11. <hgroup>
  12. <h1>Header in h1</h1>
  13. <h2>Subheader in h2</h2>
  14. </hgroup>
  15. </header>
  16. <nav>
  17. <ul>
  18. <li><a href="#">Menu Option 1</a></li>
  19. <li><a href="#">Menu Option 2</a></li>
  20. <li><a href="#">Menu Option 3</a></li>
  21. </ul>
  22. </nav>
  23. <section>
  24. <article>
  25. <header>
  26. <h1>Article #1</h1>
  27. </header>
  28. <section>
  29. This is the first article.This is <mark>highlighted</mark>.
  30. </section>
  31. </article>
  32. <article>
  33. <header>
  34. <h1>Article #2</h1>
  35. </header>
  36. <section>
  37. This is the second article.These articles could be blog posts, etc.
  38. </section>
  39. </article>
  40. </section>
  41. <aside>
  42. <section>
  43. <h1>Links</h1>
  44. <ul>
  45. <li><a href="#">Link 1</a></li>
  46. <li><a href="#">Link 2</a></li>
  47. <li><a href="#">Link 3</a></li>
  48. </ul>
  49. </section>
  50. <figure>
  51. <img width="85" height="85"
  52. src="http://www.windowsdevbootcamp.com/Images/JennMar.jpg"
  53. alt="Jennifer Marsman" />
  54. <figcaption>Jennifer Marsman</figcaption>
  55. </figure>
  56. </aside>
  57. <footer>Footer - Copyright 2011</footer>
  58. </body>
  59. </html>
复制代码

当然,在这个例子里,我也引出了另外几个新元素。

不知道你是否注意到hgroup元素,它将h1和h2这两个header组合到一起了?

我们可以用mark元素将重要文本高亮显示或标记出来。如果要在内容中插入一张图(图像、图表、照片和代码片段等),可以使用figure元素。而figcaption元素能为图加上标题。当把以上代码和一些CSS代码组合后,得到的Web页面如下图所示。



在一些擅长CSS的朋友(可惜我不擅长CSS)的帮助下,上面这个结果看起来靓爆了!实际上,有了HTML的描述性,完成这个页面非常容易。

还要说明一点,如果你是Visual Studio的拥趸,请确保已经安装了Visual Studio 2010 SP1。否则,你将发现Visual Studio并不理解HTML5元素,从而导致Web页面上到处是歪歪曲曲的线条。

然后,在Visual Studio菜单中依次选择“Tools”-“Options”,打开一个“Options”对话框。从左侧的导航面板,依次展开“Text Editor”和“HTML”,单击“Validation”。在“Target”下拉列表框中选择HTML5,这样就能得到对HTML5 IntelliSense的支持了。



使用Canvas元素在HTML5中进行绘画

HTML5中另外一个新元素是< canvas>标签。顾名思义,它就是一块用来绘画的空白平面。你需要使用JavaScript在这块画布上进行操作和绘画。

你可能需要为canvas元素赋予一个id属性,这样就能通过JavaScript代码以编程的方式访问它。如果你正在使用jQuery,并且在页面上只有一个canvas,你可以使用$(‘canvas’)来访问它,而不用为它命名。

你也可以为canvas指定height(高度)和width(宽度),但这不是必需的。在< canvas> 和< /canvas>标签之间,你还可以指定一些文本,显示在不支持canvas元素的浏览器中。

下面是使用canvas进行绘画的一个简单例子。(我希望画一张苏格兰国旗,如果画得不是非常精确,请见谅。)

  1. <!DOCTYPE HTML>
  2. <html>
  3. <body>
  4. <canvas id="myCanvas">Your browser does not support the canvas tag.</canvas>
  5. <script type="text/javascript">

  6. var canvas = document.getElementById('myCanvas');
  7. var ctx = canvas.getContext('2d');

  8. // Draw blue rectangle
  9. ctx.fillStyle = '#0065BD';
  10. ctx.fillRect(0, 0, 125, 75);

  11. // Draw white X
  12. ctx.beginPath();
  13. ctx.lineWidth = "15";
  14. ctx.strokeStyle = "white";
  15. ctx.moveTo(0, 0);
  16. ctx.lineTo(125, 75);
  17. ctx.moveTo(125, 0);
  18. ctx.lineTo(0, 75);
  19. ctx.stroke();

  20. </script>
  21. </body>
  22. </html>
复制代码
上面的代码将生成以下结果。



现在我们从头到尾分析一下代码。

首先,我创建了一块画布(canvas),并为它赋予了一个ID叫“myCanvas”。如果运行这段代码的浏览器不支持canvas元素,它就会在旗帜原本要出现的位置显示“Your browser does not support the canvas tag”。

接下来,我编写了一段脚本。记住,canvas标签只是一个用来画图的容器,你必须用JavaScript来画图并将其呈现出来。我首先通过使用ID“myCanvas”获得了对canvas的一个引用,然后得到canvas的上下文。上下文所提供的方法和属性,都可以用来在canvas上操作图形和进行绘画。这里指定了参数“2d”,表示我将在2维的环境中来进行绘画。

第三步,完成蓝色矩形的绘画。我用fillStyle方法指定了矩形的颜色为蓝色,再用fillRect方法画出了矩形,后者的参数指定了矩形的大小与位置。fillRect(0, 0, 125, 75)表示:从左上角的顶点(0,0)开始画一个矩形,宽为125像素,高为75像素。

最后,我在旗帜上画出了一个白色的“X”。我首先调用beginPath方法启动画路径的进程。指定的lineWidth属性值(也就是路径的宽度)为15像素,这是通过不断猜想加尝试才找到的看起来最合适的值。另一个属性strokeStyle则被指定为“white”,以表示路径颜色为白色。接下来,依靠moveTo和lineTo两个方法描绘出了整个路径。这两个方法都会定位出一个用来绘图的光标,其区别在于:前者移动光标的时候不会画出一条线,而后者在移动的同时会画线。在画X的过程中,首先从(0,0)——左上角开始,然后画一条线到(125,75)——右下角。接着把光标移到(125,0)——右上角,一笔画到(0,75)——左下角。最后的stroke方法将真正地呈现这些笔画。

canvas与SVG的简单对比

可缩放矢量图形(Scalable Vector Graphics,简称SVG)是在浏览器窗口进行绘画的一个早期标准。随着HTML5的canvas的发布,许多人都想知道它们之间到底孰优孰劣。

在我看来,它们之间最大的区别就是:canvas使用立即呈现模式,而SVG使用保留呈现模式。这意味着,canvas可以让所画的图形立即呈现在显示器里。在上面给出的代码中,一旦旗帜画完,系统就会“忘掉”它,且不会有任何状态保留下来。如果对它进行改动,将会导致彻底的重画。与之相比,SVG保留了所呈现对象的一个完整模型。要对图做出改动时,你只需要指出改动的地方(例如矩形的新位置),浏览器来负责呈现新的图形。这节省了开发人员的工作,但也为维护模块付出了性能上的代价。

能够同时通过CSS和JavaScript来进行设计,是SVG另一个值得称道的优点。与之相比,canvas只能通过JavaScript来进行操作。

两者其他的区别如下表所示。



如果想了解更多细节的不同之处,推荐你去阅读下面一些文章(前面的表就是经过作者同意后从下面的文章里拿来的)。

音频和视频支持

HTML5最大的新特色之一就是支持音频和视频。在HTML5之前,我们必须使用插件如Silverlight 或Flash来实现这些功能。在HTML5中,你可以直接使用新标签< audio> 和 < video>将音频和视频嵌入到页面。

从编码的角度来看,audio和video元素使用起来很简单(下面我会深入地谈到它们的一些属性)。所有的主流浏览器都支持audio和video元素,包括最新版本的IE、Firefox、Chrome、Opera和Safari。虽然如此,有一点很关键:你需要编码解码器去播放音频和视频,而不同的浏览器支持的编码解码器是不同的(想要进一步了解视频容器和编码解码器,可以访问链接http://diveintohtml5.org/video.html)。幸运的是,这不会成为技术障碍,因为HTML5对音频和视频的支持方式非常灵活(各个浏览器支持的音频和视频格式一般有好几种,它会轮流使用这几种格式去播放音频和视频)。*当然,你最好提供多种格式的音频和视频源,以满足不同浏览器的需求。*此外,你还可以继续使用Silverlight或Flash插件。最后,在开始和结束标签(例如< audio> 和 < /audio>)之间的文本,会在浏览器不支持audio或video元素的时候显示到web页面上。

例如:

  1. <audio controls="controls">
  2. <source src="laughter.mp3" type="audio/mp3" />
  3. <source src="laughter.ogg" type="audio/ogg" />
  4. Your browser does not support the audio element.
  5. </audio>
复制代码

执行这段代码时,浏览器将首先试图播放laughter.mp3文件。如果没有合适的编码解码器去播放,它会转向播放下一个文件laughter.ogg。如果浏览器根本不认识audio元素,它会在音频控件的位置显示文本“Your browser does not support the audio element”。

关于音频和视频,需要警告大家的是:HTML5并没有内置的数字版权管理(digital rights management,简称DRM)支持,作为开发人员,你必须自己实现它。

现在,让我们深入探讨这两个新元素。

音频

首先,让我们看看< audio>的更多细节。

  1. <audio controls="controls">
  2. <source src="laughter.mp3" type="audio/mp3" />
  3. <source src="laughter.ogg" type="audio/ogg" />
  4. Your browser does not support the audio element.
  5. </audio>
复制代码

前面已经介绍过,浏览器会依次尝试播放每个音频源,直到找到一个能播放的源。

注意这里多了一个controls属性。使用这个属性后,浏览器将显示音频回放控件,包括播放/暂停按钮、时间显示控件、静音按钮和音量控件。在绝大多数情形下,把这些控件展示给用户是明智的。我非常讨厌打开一个网页时有声音响起,而且没法把它停止、静音或者调低,难道你不是这样?

在IE浏览器中,各种音频控件如下图所示。



在不同的浏览器中,这些控件的外观并不一样。Chrome浏览器中的音频回放控件如下图所示(它正在播放一首歌)。当你的鼠标指针悬停在整个控件最右边的声音图标上时,将会弹出一个下拉式的音量控制条。


下图是Firefox中的控件样式,截图停在了一首歌暂停的时刻。和Chrome一样,它也有一个弹出式的音量控制条(本图未显示),可以通过将鼠标指针悬停在控件最右边的声音图标上弹出它。



audio元素的其他一些有趣的属性如下表所示。



下面这段示例代码,执行时将显示音频回放控件,并在音频文件加载完成后立刻自动播放,完成后再一遍又一遍地重复播放。

  1. <audio controls="controls" autoplay="autoplay" loop="loop">
  2. <source src="laughter.mp3" type="audio/mp3" />
  3. <source src="laughter.ogg" type="audio/ogg" />
  4. Your browser does not support the audio element.
  5. </audio>
复制代码

如果你想在自己的浏览器中好好研究< audio>元素,可以参考http://w3schools.com/上的“Tryit Editor”。它可以用来编辑一些示例代码,然后看看会发生什么。此外,你也可以参阅下面这篇文章——How to add an HTML5 audio player to your site(如何向你的站点添加HTML5音频播放器)

视频

现在,让我们试试< video>元素。
  1. <video width="320" height="240" controls="controls">
  2. <source src="movie.ogg" type="video/ogg" />
  3. <source src="movie.mp4" type="video/mp4" />
  4. <source src="movie.webm" type="video/webm" />
  5. Your browser does not support the video tag.
  6. </video>
复制代码

前面讲过,video元素也支持多个源,它会按顺序依次尝试播放。

与audio元素相同,video元素也有一个controls属性。视频控件在IE浏览器中的截图如下所示。



video元素其他一些有趣的属性如下表所示。


如果你希望继续研究< video>元素,可以使用来自http://w3schools.com/的“Tryit Editor”,用它来编辑一些示例代码,然后看看代码生成的效果。

如果想学习关于video和audio的更多内容,请访问以下几个链接。

分享到:
评论

相关推荐

    五分钟学会HTML5

    五分钟学会HTML5

    五分钟学会HTML5!(二) - OPEN 开发经验库1

    【HTML5兼容性问题与解决方法】 HTML5引入了许多创新特性,如语义化标签、Canvas画布、音频和视频支持等,极大地丰富了网页开发的可能性。然而,这些新功能并非所有浏览器都完全支持,尤其是老旧版本的浏览器,可能...

    5日学会动态HTML 5日学会动态HTML html

    本教程“5日学会动态HTML”旨在帮助学习者在短时间内掌握DHTML的核心概念和实际应用。 首先,HTML是HyperText Markup Language的缩写,它是用来构建网页结构的语言。动态HTML则在此基础上增加了互动性和动画效果,...

    十五天学会HTML.rar

    "十五天学会HTML"的压缩包资源显然旨在帮助初学者在短时间内掌握这项技能。 在学习HTML的过程中,首先要理解基本的标签结构,比如`&lt;html&gt;`、`&lt;head&gt;`和`&lt;body&gt;`,它们构成了一个完整的HTML文档。`&lt;html&gt;`是整个文档...

    简易十五天学会HTML

    新手必看!学习HTML的绝好文档! HTML(Hyper Text Mark-up Language)即超文本标记语言或超文本链接标示语言,是... 内容示例: 十五天学会HTML之第一天:开始学习 在这第一课中,我们简要介绍制作网站所需的工具。

    5日学会动态html

    《5日学会动态HTML》是一本旨在帮助读者在短时间内掌握HTML动态网页制作技术的教程。HTML,全称为HyperText Markup Language,是构建网页的基础语言,它通过标记式的语法来描述网页的结构。随着Web技术的发展,HTML...

    10分钟学会HTML(第4版)

    HTML 简介,快速掌握基本的HTML知识,是初学者的良书

    5日学会动态HTML

    在"5日学会动态HTML"的学习资源中,你将深入理解并掌握如何在短时间内有效地运用这些技术。 第一天:HTML基础与动态元素 在学习动态HTML之前,你需要了解HTML的基本结构和语法规则。HTML是网页的基础,通过定义元素...

    5分钟学会FCKEDITOR

    在5分钟内学会使用FCKeditor,你需要遵循以下步骤: 1. **下载与安装**:访问FCKeditor的官方网站(现已更名CKEditor),下载最新版本的编辑器。解压后,你会得到一个包含所有必要文件的文件夹。 2. **配置编辑器*...

    5日学会动态HTML.rar_html_html chm

    在"5日学会动态HTML.rar_html_html chm"这个压缩包中,包含了学习动态HTML的相关资源,如"5日学会动态HTML.chm"可能是一个详细的教程,而"www.pudn.com.txt"可能是提供额外链接或参考资料的文本文件。 动态HTML的...

    5小时学会asp

    总结来说,5小时学会ASP的主要内容包括: 1. 创建Access数据库并定义表结构。 2. 使用ASP建立与数据库的连接,创建`Connection`对象并使用`Open`方法。 3. 使用`Recordset`对象执行SQL查询,遍历并显示查询结果。 4....

    10分钟学会HTML(第4版).rar

    本资源“10分钟学会HTML(第4版)”提供了一个快速学习HTML的途径,适合初学者入门。 在HTML的第四版中,你将学习到以下几个核心知识点: 1. **HTML基本结构**:每个HTML文档都由`&lt;!DOCTYPE&gt;`声明、`&lt;html&gt;`元素、`...

    10步之内学会HTML

    在这个"10步之内学会HTML"的学习资源中,我们将逐步深入理解HTML的核心概念,通过实践来掌握这个强大的工具。 第一步:了解HTML的基本结构 HTML文档通常以`&lt;!DOCTYPE html&gt;`开始,声明这是一个HTML5文档。接着是`...

    HTML5快速参考

    4. 易于理解的建议:提供简单易懂的建议,帮助读者更快地学会HTML5。 本书的目标读者为既有经验的程序员以及新晋的网页开发者。它提供了一个快速参考的资源,以帮助读者跟上HTML5的最新发展,并在开发网站时迅速地...

    5日学会动态Html

    《5日学会动态Html》是一本旨在帮助初学者在短时间内快速掌握动态HTML技术的教程。动态HTML(Dynamic HTML,简称DHTML)是HTML的一个扩展,它结合了HTML、CSS、JavaScript以及DOM(Document Object Model)等技术,...

    利用HTML5CSS3和WebGL开发HTML5游戏.zip

    5. 学会优化游戏性能,例如通过Web Workers分担计算任务。 此外,为了成为一名成功的HTML5游戏开发者,还需要掌握JavaScript基础,理解DOM操作,熟悉现代前端框架(如React或Vue),以及对游戏设计原理的理解。通过...

    教您十五天学会HTML

    在“教您十五天学会HTML”的教程中,你将系统地学习到以下关键知识点: 1. HTML基础:了解HTML的历史、工作原理以及HTML文档的基本结构,包括文档声明、头部元素和主体元素。 2. HTML标签:学习各种HTML标签,如`...

    HTML5开发实训

    HTML5开发实训:让我们学会用代码编写网页,最重要的是学会HTML5的基础运用,了解安卓系统方面的一些知识!有利于我们以后的网页设计学习! 二、实习内容 第一天,我们学习了用代码写网页最基本的知识,如: &lt;!...

Global site tag (gtag.js) - Google Analytics