1.2 HTML 5与其他技术的区别

一种技术或多或少都会与其他技术有着相同或不同的区别,本节将介绍HTML 5技术与其他几种技术的常见区别。

1.2.1 与XHTML的区别

HTML(Hypertext Markup Language)是一种用于描述网页内容的超文本标记语言,而XHTML(eXtensible HyperText Markup Language,XHTML)是一种置标语言,其表现方式与HTML类似,但是它在语法上要求更加严格。从继承关系来讲,HTML是一种基于SGML的应用,是一种非常灵活的置标语言;而XHTML则是基于XML的,XML是SGML的一个子集。

XHTML比HTML要求更加严格,说明如下。

(1)所有的标记都必须要有一个相应的结束标记。

HTML中可以打开许多标记,如<li>不一定要使用结束标记</li>进行关闭。但是在XHTML中这是不合法的,它要求严谨的结构,所有的标记都必须关闭。如果是单独不成对的标记,则需要在标记最后加上一个斜杠来关闭。例如,<img>标记的使用如下:

    <img height="80" alt="网页设计师" src="images/logo.gif" width="200" />

(2)所有标记的元素和属性的名字都必须使用小写。

HTML不区分大小写,但是XHTML对大小写是敏感的,例如,<title>和<TITLE>是不同的标记。XHTML中要求所有标记和属性的名字都必须使用小写,例如,<BODY>必须写成<body>。大小写混合着写也是不被认可的,通常在Dreamweaver中自动生成的属性名字如onMouseOver也必须修改成onmouseover。

(3)所有的XML标记都必须合理嵌套。

XHTML严谨的结构要求嵌套都必须按顺序,一层一层的嵌套必须是严格的对称。

(4)所有的属性必须用引号""括起来。

HTML中可以不给属性值加引号,但是在XHTML中,它们必须被加引号。如下代码:

    <input type="text" height="25" width="200">

某些特殊情况下,设计人员需要在属性值中同时使用双引号和单引号,双引号可以用"",单引号可以使用&apos;表示。

(5)特殊符号用编码表示。

常用的特殊符号有三个,它们分别是<、>和&,说明如下。

① <(任何小于号):不是标记的一部分,都必须被编码为&lt。

② >(任何大于号):不是标记的一部分,都必须被编码为&gt。

③ &(任何与号):不是实体的一部分,都必须被编码为&amp。

(6)为所有属性赋一个值。

XHTML规定所有属性都必须有一个值,没有值的就重复本身。例如,HTML中可以声明如下代码:

    <input type="checkbox" name="shirt" value="medium" checked>

但是在XHTML中就必须修改为如下代码:

    <input type="checkbox" name="shirt" value="medium" checked="checked">

(7)不要在注释内容中使用“--”。

“--”只能发生在XHTML注释的开头和结束,也就是说,在内容中它们不再有效。例如,在网页中声明“<!--注释-----注释-->”中间的“--”是没有效果的,这时需要用等号或者空格替换内部的虚线,例如“<!--注释=====注释-->”。

(8)图片必须有说明文字。

每一张图片标记都必须通过alt属性添加说明文字。代码如下:

    <img src="ball.jpg" alt="ball" title="ball"/>

1.2.2 与Silverlight和Flash的区别

Flash与Silverlight两项技术都是当前应用最为广泛的RIA(Rich Internet Applications,富互联网应用)技术,HTML 5的发展是大势所趋,它和前两种技术在RIA领域呈现了三足鼎立的局面。

但是,随着HTML 5的不断发展,它使Flash和Silverlight受到了威胁。许多业内人士认为,HTML 5将会最终代替多媒体框架(如Flash)和Silverlight,但是,短期看来还不是时候。HTML 5到2014年才逐步成熟,而且将现有应用Flash的网络开发完全转向HTML5还需要一段时间。

下面从吸引开发者、HTML 5和移动三大方面对Flash、Silverlight和HTML 5技术进行了对比。

1.吸引开发者

开发者是公司争夺的核心,Adobe几乎抢占了全部终端用户市场,互联网上98%的计算机运行Flash,这对开发者来说非常重要。虽然Adobe并不是操作系统提供商,但他们让Flash进驻到几乎每一个浏览器和平台。

微软的Silverlight已经发展到4.0,声称拥有45%的市场,在欧洲和亚洲更高(60%)。它也提供跨平台和浏览器支持,尽管对Linux的支持不够及时。另外,微软称他们已拥有近五十万开发者。双方都有超级大客户,微软受益于体育运动赛事,他们还为Netflix以及维多利亚内衣Show提供在线视频。Adobe则涵盖了几乎所有大型视频网站,包括YouTube和Hulu。

微软在Silverlight的开发工具方面做得很好,在Silverlight刚刚推出时就向开发者社区提供了开发工具,微软.NET开发者可以直接在Visual Studio中开发Silverlight应用。Flash开发者则使用ActionScript、Flex、FlashBuilder等工具进行开发。

另外,在编码器、API、音频处理、文件格式与尺寸、性能、动画模式等方面,双方也是各有千秋。不过,他们辩论的焦点始终都是如何同时吸引前端和后端开发者。微软的Expression目前只支持Windows系统,将Mac阵营的开发者拒之门外。同时,Adobe也借Catalyst吸引各个平台的开发者。微软的Goldfarb提到他们注重开发者的传统,Adobe则强调他们的用户基础,双方都保证会为消费及企业用户提供跨媒体的富Internet体验。

2.HTML 5

如果说Silverlight的推出让Adobe感到棘手,那么他们现在都应该对HTML 5感到棘手,HTML 5的使命是让RIA成为HTML标准。不过,双方都不承认HTML 5对他们的威胁,相反,都表示要与HTML 5和平共处,让Flash和Silverlight在HTML 5下工作,并且在相关工具中提供对HTML 5的支持。

3.移动

Adobe的Murarka曾提到:在日本,Flash是除了短消息之外的第二大移动应用。根据他们的路线图,他们将向19或20家最大的OEM商提供对Flash的支持。虽然Silverlight不支持微软自己的移动操作系统,但是,微软已经宣布同Nokia合作向Symbian系统提供Silverlight。

另外,iPhone是一个让Adobe如梗在喉的东西,Adobe已经要求开发者编写可以在iPhone上运行的Flash程序,虽然苹果不允许在iPhone上运行解释代码(如Java、PHP、PERL),但是Murarka表示会继续同苹果沟通。

鉴于将来会有比桌面PC更多的移动设备投入使用,微软和Adobe必将在移动领域激烈竞争。目前的手机硬件还不适合运行太多RIA应用,但是,随着硬件的发展,未来的两三年就可以实现。