XHTML 2.0与HTML 5之争

XHTML 2.0与HTML 5之争

随着以Google和Apple为首的Webkit(浏览器渲染引擎)阵营的大范围推进HTML 5,新的Web标准也开始出现在人们的视野当中,无论Youtube还是苹果官方网站的视频播放都开始基于HTML 5,这似乎宣告一个新的时代即将到来,但Web设计师和程序员都知道,W3C的HTML标准并不唯一,那么未来谁将成为主流呢?


什么是HTML、XHTML、XML?

HTML全名Hyper Text Markup Language,也就是超文本标记语言,隶属于SGML的一部分。SGML是一个了不起的东西,可以描述任何语言,但也十分抽象,基本做不了什么东西,但由它衍生出来的子集却极大地推动了Web生产力。其中最著名的就是HTML和XML,所以这两个标记语言是同宗的。

HTML语言诞生很早,最初只是一个个链接把网页关联起来,功能很简单,后来经过十多年的发展,到现在出问题了。HTML的语法结构很松散,主要为了早期程序员上手方便,以及降低上手门槛,让那些不懂编程的人也可以做网页,所以HTML更偏重于自然人的理解方式,不仅语法松散,而且很多地方模糊不清。

实际上,网页的终极标记语言是XML,但XML结构复杂,语法严谨,学习起来相对现行的HTML也比较困难,尤其在早期标准不统一的年代,XML没法立即铺开。后来W3C经过多方的努力吧,想出一个折衷的办法,就是XHTML,扩展的HTML。也就是适当地、逐步地向HTML加入XML的标准。让开发人员有一个过渡。这一过渡已经持续了十几年。所以HTML 5虽然宣传的天花乱坠,但要想成为主流,路还很长很长。

XHTML和HTML的区别

既是扩展,当然主要内容还是一样的,只不过语法方面更严格了。比如区分大小写,HTML是不区分的,XHTML 1.0开始建议Web程序员在编写标签名时一律用小写,所有属性值都要用引号包括,所有标签都要关闭等等。举个简单的例子就是,<IMG SRC=IMAGE.JPG> 这是HTML 4的写法,但XHTML 1.0这么写虽然不至于保存,但是不提倡,正确的写法应该是<img src=”image.jpg” />,最后的/>表示即便是像<img> 这种单身标签也是要关闭的,方法就是在结束括号前加/。优秀的程序员都应该养成良好的编码习惯,不仅提高效率、便于维护,程序执行起来也减少歧义。就比如属性值用引号,因为有的属性值中间会有空格,如果没有引号的话,浏览器可能会理解为两个属性。

除此之外,XHTML还废弃了一些标签,比如<font>,但目前还是可以支持,并且建议一切表现相关的,就是和外观有关系的东西都用CSS实现,XHTML只做内容和框架。这就是为什么经典的<marquee>被废弃的原因,这一个标签就可以完成华丽的滚动效果,但也因此被废弃。W3C坚持的原则就是,XHTML标签只做框架,CSS只做样式,而行为则交予JavaScript来处理。CSS也有过表达式可以执行运算,但没有铺开,和滤镜一样都废弃了。类似这些舍本逐末的规则,实际上帮了程序员的大忙。Ajax就是在这个总体的战略方针下诞生的。

现在的主流和未来的趋势

业界已经基本完成了从HTML 4到XHTML 1的过渡,确切地说是XHTML 1.1 Transitional和XHTML 1.0 Strict。著名的禅意花园用的就是XHTML 1.0 Strict。这两个版本的区别就是刚刚也提到了,XHTML 1.1 Transitional虽然废弃了一些诸如<font>的标签,但态度比较温和,还是可以继续使用,而XHTML 1.0 Strict则更加严格,而且更倾向于XML那种具有语义的标签和属性。

未来的趋势,我们可能很自然地会联想到XHTML 2.0,似乎HTML因为本身的原因已经退出历史舞台了,但最近HTML 5高调复出,似乎为这个已经平静的局势增添了许多不确定性。

XHTML 2 vs. HTML 5

关于XHTML 2和HTML 5的对比文章有很多,而且内容冗长乏味,看的我也是云山雾罩,所以我们先从两个标准的历史谈起。

XHTML 2

XHTML 2.0项目启动很早,早在XHTML 1.1 Transitional发布后不久的2001年就开始着手制订了,而且W3C的标准都是建议级的,没有强制规定说浏览器必须这么做,所以到目前为止,没有任何一款浏览器能够完全符合W3C标准,尽管某些厂商或媒体这么宣传,但实际上都做不到100%。第一份XHTML 2.0标准草案在2002年就发布了,但完成度很低,内容也不标准,而且此后的工作进展很迟缓,有的问题到现在也还没有达成一致,所以在2004年的时候,业界的一些好事者吧,联合热心的投资人、浏览器厂商、网页设计师、开发人员甚至普通用户,反正就是梁山好汉吧,自立门户,扬言要制订自己的标准,不跟W3C玩了。还成立了一个叫WHATWG的组织,全名叫Web超文本应用技术工作组,还真就制订了一份叫Web Application 1.0的协议。

2007年4月,W3C开会以压倒性的投票决定招安,WHATWG并入W3C,继续开发那个带有传奇色彩的Web Aplication,不过后来就改名了,改叫什么了呢?

HTML 5

所以说HTML 5实际上和HTML 4没什么关系,甚至和W3C都没什么关系,这就是为什么HTML 5能带来很多和HTML都没什么关系的特性,比如播放视频。现如今HTML 5已经成为W3C的重点投资项目,与XHTML 2.0并行,也就是说W3C并没打算放弃XHTML 2.0,认为还是有搞头,但问题就来了,一山不容二虎,一个网页不能用两种标准。相对于XHTML 2.0大跃进式的向XML靠拢,HTML 5则更倾向于创建一种Web应用标准,HTML不应当只是简单的标记,应该赋予浏览器更丰富的应用。

XHTML 2的新特性

内容很多,简单介绍一下我知道的。

  • 导航列表(Navigation Lists)
    无序列表<ul>我们都很熟悉,XHTML 2引入了<nl>,就是导航列表。用以创建导航菜单。并且<nl></nl>之间必须包含有<label>表示标题。
  • 定义列表(Definitions Lists)
    定义列表<dl>定义了一个term(术语,专有名词)元素<dt></dt>和一个definition元素<dd></dd>。一个term可以有很多定义,多个term也可以有相同的一个定义,也可以说是含义。这样就可以利用定义列表把术语和定义有机地结合在一起,生成的网页代码也更容易理解了。
  • 一切皆可做链接
    提到链接,我们首先会想到<a>,但<a>是锚而不是链接的标记。XHTML 2中表格、图片、段落所有的东西都可以加入href=””属性。
  • 取消b、i、small、big、tt、font标签
    b和i是粗体和斜体,现在用<strong>和<em>,而<small>和<big>以及<xx-large>这类含糊的标签都将被废除,字体的事全由CSS掌管。
  • 取消iframe
    网页框架,经常导致不可预知的问题。
  • 新的Heading结构
    网页的<h1>~<h6>标签对可用性和SEO非常有用,这个标签不是用来显示字体大小的,而是表示内容的层级关系,搜索引擎和读屏程序通过这些结构标签来分析内容,所以做SEO最基本的就是多用<h>标签而不只是简单的改变字体大小。但实际上大部分人看不出来<h5>和<h6>的区别,很多设计师用CSS来二次定义字体。新的<h>标签配合<section>使用,提供了更完善的层级结构。而且可以无限包含。CSS控制的自由度也更大了。
  • 编写程序代码
    现在用的是<pre>和<code>,都不是很好用,XHTML 2中则可以用<blockcode>,可能是二者的结合吧,具体我也不太清楚。
  • seperator取代hr
    我们都知道<hr>是水平线的意思,但其实<hr>并不是水平线,而是horizontal rule,是把内容分成上下两部分的规则,虽然效果差不多,但含义上容易产生误解,所以今后用seperator来代替。
  • edit取代del和ins
    现在要表示删除文本,就是文本中间划横线用的是<del>,XHTML 2将采用表意更明确的edit属性,如<p edit=”deleted”>Delete Me!</p>。

以上只是一小部分改进,但整体上可以感觉到,XHTML更偏重于标记语言本身的完善和严谨,提高网页元素的能力,同时废弃了之前表意不明确或不规范的标签,但实际上对网页浏览者和网页开发人员帮助并不明显。简单来说,网页实际上没什么变化。

HTML 5新特性

HTML 5的许多新特性使得网页元素被优化组合为一个个Section,就是单元。

  • dialog元素
    dialog元素表示的是一段对话,就是两个人之间说话,谁谁问道,谁谁说道。<dt>表示说话人,<dd>表示说话的内容。这样可以使网页代码更具可读性。CSS控制起来也更简便了。
  • figure元素
    再印刷出版领域,媒体对象,比如图片、照片、插图、表格之类的对象旁边都伴有caption,就是图1、表1-1这类指示说明,这个term叫caption。Web标记语言虽然也有<caption>标签,但没什么作用,而且外观多是CSS控制。HTML引入了figure元素,解决了这个问题。
  • m元素
    m可以理解为marked,不是market,是被标记的意思。比如我们使用Google搜索,搜索结果是一个个网页的连接和摘要,其中和你输入的关键字一样的文字会以高亮显示,这个功能在搜索时很有用。Google的做法是用<em>表示高亮,<em>本意是斜体的,但Google用CSS font-style:normal;重新扶正了文字,并给文字加以颜色。而再HTML 5中就有专门的<m>标签可以用于高亮识别了。
  • 增强input元素
    HTML 5中的input元素也得到了增强,input就是我们常见的输入框。再注册论坛帐号的时候经常会遇到,而且借助Ajax可以实时检查输入内容的格式,比如数字、日期、Email等等,再HTML 5中,input框自己就可以完成这些功能,而无需借助JavaScript。
  • 视频播放
    这个大家已经熟悉了,据说要取代Flash,单就视频播放这一项的确可以挑战Flash的地位,但实际却被媒体夸大其词,仿佛Flash即将退出历史舞台似的。HTML 5原生支持某些格式的音频/视频播放,但目前来看还不太成熟。
  • 开源
    任何人都有机会参与HTML 5的制订,这是以前没有过的。

我们可以明显看出HTML 5更关注实际的用户体验,这里的用户不仅仅代表网页浏览者,也包括开发人员,新标准可以给开发人员带来更多实惠,而且大大简化设计步骤,提高代码效率,而不像XHTML 2那样只不过是对开发人员提出更高的要求,但HTML 5也有缺点,就是仍然包容旧有的落后的标记,这从长远来看是不利于技术进步的,毕竟坏习惯应该尽快改掉才对。

总结

我个人比较看好HTML 5,而且也得到了Google和苹果等浏览器厂商的支持,虽然2007年才算正式纳入议事日程,但发展速度很会。W3C给我感觉已经开始没落了,包括Eric Meyer等不少Web界的大师都退出了W3C的各种小组,他们已经不能代表先进的标准,逐渐变成了顽固、神经质和偏执狂的代名词,虽然曾经为Web的演进做了不可磨灭的贡献,但单就XHTML 2来看,他们正在做的就是阻碍Web发展,并将Web引入歧途。未来的Web将比之前更加丰富、开放,媒体形式也多种多样,作为Web标准也不能一味坚持传统,也应该切实地迎合市场需求,起到一个良好的导向作用。

转载自柏枫的博客


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值