关于web标准的思考

作者:wheatlee 来源:蓝色理想 时间:2008-10-05 10:07:00 

我是从去年初开始学习web标准的,两年下来也有些心得。最近跳槽了正好闲在家里,写一些出来和大家交流一下。

1 对于web标准和W3C XHTML规范的理解

按照习惯的理解,这两个概念似乎都是指的一个东西(就是咱们在这个版里讨论的这些个"高深理论“^_^)。但我认为,事实上从技术的角度上讲,这两个事物几乎没有任何相关性。web标准简而言之就是将页面的结构、表现和行为各自独立实现,更通俗的讲就是如今招聘时流行的语言”div+css"。但W3C XHTML的任何一个版本都没有对web标准理念作限制。很显然的,我们可以用xhtml 1.1写出一个table定位的网页。说到这里,或许会认为我讲了一堆废话。但任何一项技术,只有当你对基础概念有足够清晰的认识的时候,你才会正确的使用它。我从下面两个方面,来谈谈如今Web标准应用走向的两个歧途:

第一种情况很简单。自以为只要使用了XHTML+CSS就是Web标准了。页面里面遍地是class和id。肆意的为每个细节都单独定义class。这样的页面和传统的html的区别就是img标签里多了个"/"。事实上这样子还不如回到传统的html,至少我可以轻松的使用font,而不用总是跟查字典一样去查样式表。另一种更隐蔽的随意使用CSS的我在以后讲。

第二种情况我觉得比较难理解一些,即试图用各种纷繁复杂的div嵌套和css语句来实现你所想要的表现。很简单的一个例子就在我刚看到的一个帖子" 不用切图的页面圆角"。首先我想肯定的是这个创意确实很不错,使用CSS功能将圆角“画”出来。为此,设计者必须在相应的位置加上一大段如下的代码:


<b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b>
<b class="b4"></b><b class="b3"></b><b class="b2"></b><b class="b1"></b>


但是,这里严重违反了Web标准的基本概念——结构与表现要分离。因为它将用于控制网页表现的代码放在结构文档中了。或许你会说它事实上还是将真正的表现代码放在CSS里的。但我认为这是一个偷换概念。因为以上这些b标签跟网页结构无关,它们都是一些空标签。也就是说,它的存在并不是为了将某些内容放在文档结构需要的位置。因此它们对于文档结构来说只是一些废代码。

另外一个例子可能更加隐蔽。之前我有在alistapart.com上看到过如何实现网页三通栏的文章,其原理大概就是使用三四个div相互嵌套。我认为这也是一个违反Web标准思想的做法。因为这些div标签在代码中摆放的次序已经不单纯是为了结构的需要,而是用于网页的表现。

当然,我承认,以上的观点在一定程度是钻牛角尖(但反过来说,非要实现非图片圆角不也是在钻牛角尖么,呵呵)。有些时候结构和表现并不是那么轻易的就能分开的,我们为了实现一些丰富的表现不得不让结构去迁就(想想<div style="clear:both" />的用处)。但是知道什么是对什么是错是很重要的。即使我们有时候不得不做一些错事。

最后,我想声明的是,我并不是"非图片圆角"是无意义或是错误的。我也很佩服作者的聪明和灵感。我觉得这样的技术研究就如同以前用CSS画国旗一样,对CSS技术的熟练掌握很有帮助。但是,它的用途也应该仅和CSS国旗一样局限,不应该在实际应用中采纳。因为它违反Web标准的基本原则。

标签:web,标准,css
0
投稿

猜你喜欢

  • SQL Server数据在不同数据库中的应用

    2008-12-24 15:34:00
  • 文章关键字替换带链接需要注意的两个问题

    2010-02-25 12:18:00
  • 三种SQL分页查询的存储过程代码

    2012-01-05 19:31:32
  • mysql主从服务器配置特殊问题

    2011-01-04 19:56:00
  • 不建议使用jquery的情况

    2008-03-10 12:28:00
  • 让css使网页图片半透明

    2007-02-03 11:39:00
  • UCDChina.com 关于用户期望的讨论

    2008-07-10 11:55:00
  • 从xml中获取城市,省份名称

    2008-09-05 15:07:00
  • SQLServer 镜像功能完全实现

    2011-09-30 11:33:07
  • 简评:JavaScript将成Silverlight的最大对手?

    2008-10-17 10:29:00
  • 网站导航设计的6大分类

    2010-07-12 18:46:00
  • CSS中expression的用法

    2008-09-11 14:18:00
  • 如何修改MySQL 5.1 data文件夹路径

    2010-10-25 19:58:00
  • js如何能知道浏览者计算机使用的语言是繁体还是简体

    2008-10-09 13:10:00
  • 网页代码中键盘操作相关标签教程

    2010-03-18 15:56:00
  • asp如何用通过Web访问OLAP数据?

    2010-06-16 09:52:00
  • asp如何在ADO中客户端利用好缓存技术?

    2010-06-17 12:50:00
  • div+css实现圆角边框

    2007-10-21 08:55:00
  • asp如何实现网络打印?

    2010-05-24 18:31:00
  • Oracle回滚段的概念,用法和规划及问题的解决

    2010-07-26 13:08:00
  • asp之家 网络编程 m.aspxhome.com