日期:2013-10-29 浏览次数:20923 次
今天有人和我谈一个网站开发项目,当说到具体要求时,他给我来了这么一句“用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时多了另一个任务。