今天有人和我谈一个网站开发项目,当说到具体要求时,他给我来了这么一句“用web2.0来制作符合标准的页面”,我当场晕倒,心想你不懂也别装啊,不过最后还是决定进行一次面谈,可是他的这句话却引起了我对网站重构的重新思考。
web2.0是一个历史性概念,是一个阶段,更是一种互联网模式,但绝对不是一种技术;而web标准是一系列标准的集合,它的核心是内容,结构,表现和行为的彻底分离(我自己将内容也添加进去了),这对于以后改版和维护是十分方便的,如果要说对浏览速度有多么大的改进,我不感苟同。
说到重构,当然得从内容说起,因为任何的改进都是为了更好的显示内容。那什么是内容?内容应该是页面实际要传达的真正信息,包含数据、文档或者图片等,从本质上简洁地讲,内容就是指最原始的数据,是构成页面的基础。
下面就得主要说页面重点–结构了,因为脱离了结构的内容几乎不能使用,一个具有良好语义的结构会使内容更加具有逻辑性和易用性,所以说内容和结构是无法分割的整体,也许这也是标准未把内容分离明确指出的原因。
一提起结构,很多人大脑里就迸出“用div css布局”的概念,我先不管这种意识的对错,因为我一直很喜欢先弄清楚一个事物的概念:结构目前划分为两部分,一是语义结构,二是代码结构,语义结构是靠标签自身的语义产生(附注:关于到底什么是语义,我一直没有大搞明白,不过现在自己可以明确的一点是:语义含有部分结构的概念,却不等于结构,同样语义也和样式无关),代码结构则是面向程序的,需要人工的参与。下来说我对上面那种意识的看法,首先我认为布局这个词汇是不应该出现的,也许这都是IE惹的祸,另外必须纠正一个错误的概念,标准是提倡用xhtml css而不是div css,这个就得归罪于那些推广标准的朋友了,不能为快速取得成效而迷惑学习者啊,开个玩笑。既然说到div与table了,我想顺便说下二者的区别:div有语义且是面向代码结构的,它代表部分,用于在文档中定义一个分割,通过分割来展现xml化的节点结构,通过分割产生具有结构的行,关于节点和行的具体应用,在即将出世的xhtml2.0中已经出现了,它用section代表节点,line表示行;table的重心应该是在产生数据列,显示表状数据,而绝不应该用来划分结构。但这时候可能有朋友要提出问题了:如果显示的表状数据是单列多行,那么使用ul/ol不也可以实现吗?假如你真有如此疑问,那我得说你不清楚表状数据的概念了,表状数据指扩展趋势是列的数据,所以当你预计扩展的趋势是产生列的时候,哪怕它只有一列也应该使用table,而不能运用列表,因为ul/ol的重心是在产生数据级上,对于二者的正确把握和应用,关键得看个人对未来页面结构的预见性.
不往下说了,好象有点跑题了,回到结构上来,根据设计给出的效果图,我们在开始之前应通盘考虑所有要素, 争取用通用的结构来获得相同的效果, 而不是不断定义那些小巧的div单元,从而努力达到设计中最理想的境界:前台闭着眼睛都能知道后台输出的是什么样的xhtml结构代码,为了这一目的我们就必须得固定xhtml,具体实现方法就是用H系列来划分页面的大结构,用div来模块化局部区域。
在模块化局部的时候,由于xhtml中有意义的专用元素可能不够用,且它又不能象XML那样创建自己的元素,所以就必须通过添加id或class来赋予它们额外的意义。关于二者的区别,简单来讲就是,id是先找到结构/内容,再给它定义样式;class是先定义好一种样式,再套给多个结构/内容。具体说来,在XHTML的结构中,科学的方法是大结构尤其外围元素尽量用id,而class尽量在结构内部使用,使其具有通用性,但最好不要让class包含id,它俩之间有点类似于父子关系,但绝不理解为就是父子或爷孙关系。
关于表现和行为我不想多说什么,只进行一下简单的描述:没有添加样式的纯xhtml结构是有UE的,但没有UI,这就使得css的地位永远都不可能超越xhtml的核心地位,当然我并没有说表现不重要,因为就我个人而言,一份没有调料的烧烤或一部没有艺术的电影对我都是没有吸引力的。至于javascript,随着对ajax的接触和了解,越来越体会到了它的特效作用,不过站在行为层而言,它的使用更多是和CSS结合在一起的,这也就让你在学习CSS时多了另一个任务。
原文连接:http://blog.5u96.cn/article.asp?id=30
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!