| 文章内容 -
|
|
|
网站结构、表现和行为的三者分离[W3C倡导] 结构、表现和行为的三者分离
web标准的一个重要的思想就是表现和结构分离,以前我一直误解了,以为web标准就是简单的用div替代tabel;不使用描述性的标签混杂在网页结构中,而用CSS样式表来表示,使表现和 结构分离。原来这都是表面的理解,应该说,结构重在语义,要使用结构化语言来梳理网页结构,当然不是简单的整理,而是有实际意义的,定义尽可能”人性化“。每一个“骨架”都要有意义,例如将网页分成若干个区域,网页LOGO、标题、内容、导航菜单、版权说明等等,这些都是必须有意义的,说白了不是用div布局,而是用div结构化。
这使我联想到用在图片img标签中的alt属性,以前我们通常都是忽略的,或者用毫无意义的说明文字代替图片,又或者是一大堆又长又臭的描述文字……如果必要我们应该简练地描述,毫无相关的就用留空它,但不是忽略不写。
网页要表达的内容就是信息,比如你要呈现的文字、图片、多媒体等信息,结构就是这些内容的方式,表现就是CSS,行为就是DOM,JavaScript等。
所以通俗点说,HTML就是结构。
由于HTML的开放性,结构可以有很多种,最终呈现在用户面前同样的内容,其HTML结构却可以多种多样,而好的HTML是“结构化”的,也就是有条理的,基于语义的。比如p 表示一个段落,h3 表示一个三级标题,address 表示一个地址等等。而以前用table布局很大程度上破坏了这种语义的要求,充斥在整篇文档中的table,tr,td标签就不是结构化的,他们的出现是没有意义的,纯粹是为了布局的需要。类似的还有font ,b 标签等,这些都是没有结构意义而纯粹为了样式而存在的标签。
现在提倡的HTML写法是标签要言之有物,不要词不达意,也就是用什么和怎么用的问题。比如b就属于不该用的标签,因为它不表示任何结构,我们不知道它里面是什么东西,只知道它表示“加粗”,但加粗是CSS也就是表现层面的东西,这属于“言之无物”。而如果将一个本是标题的内容用p 括起来也是非结构化的,这属于“词不达意”。
关于div(以及span ),它是一个没有特定意义只有普适意义的标签,表示一个区域。因为HTML中具有特定意义的标签实在是太少了(所以W3C主张从HTML向XML过渡),我们某些情况下只有配合使用div ,span 等标签和id,class等属性来组织一个特定的内容。所以我觉得divspan 都是比较尴尬的标签,只能算是半语义的,只是由于HTML的局限,我们不得不大量的使用他们。
W3C提倡结构、表现、行为三者分离,任何一个层面的改变都不应当依赖其他层面。这是一种很好的思想,不过在目前技术局限的情况下这还是一种理想状态,因为无论是HTML,CSS,DOM等规范还是浏览器的支持等都还不完善,至少是不足以支撑这种思想,我们所能做的只是尽力如此了。
畅想一下未来这种理想的三者分离的状况下做网站,需求通过一系列沟通将转变为一个结构化文档(比如XML),同时到达前台和后台,然后两者一起开发,互不干扰。前台美工负责出设计图并和客户沟通,定稿后然后通过CSS和结构化文档整合,后台程序员则直接按需求做功能模块,最后前台后台无缝整合……
下一篇:三层架构之数据层DAL(Data Access Layer)[数据分离] 上一篇:Asp.net网站性能优化总结[C#为例] 开放文章词条: 网站结构、表现和行为的三者分离[W3C倡导] 开放文章目录: ZPYJ > 中文作品研究 > 编程知识
|
|
|
|