Div+CSS布局应该注重语义、代码的重用性

网络整理 - 07-27

普通的一个页面无非就是HTML以及CSS和等脚本组成,相对以前来说,大家都是用表格(table)来实现页面的布局,而现在呢,追求的是用层(div)来布局了。很多朋友说用层(div)布局跟用表格(table)布局的差别很大,这个我同意,因为表格(table)是用来体现二维数据的。但是既然我们以前能用,而且一直在用,也就说明表格(table)布局还是可以的。但是为什么我们现在要用用层(div)来布局呢?因为我们要让HTML 的每个标签都能在语义上很好的体现出来,即使看源代码也能很明了它的作用。

想想以前,什么CSS样式、什么HTML代码都不管,只要能在FrontPage或者DreamWeaver上制作出页面上要体现的效果就可以了。而现在呢,大家放弃了FrontPage,为什么?因为FrontPage会产生很多无用的代码,影响代码的可读性。既然注意到了这点,那么现在的重构,标准,是为了什么呢,还不是为了在代码上的一个可读性吗?

都说重构后的站是要把表现和结构分离,那把所有表现跟结构都分离就完事了吗?不!我们还要把表现的内容利用,而且是反复利用,不是用过一次就不要了。如果把要表现的内容当做一次性筷子用过一次后就不要了,那重构你的站点似乎意义不大,反而让你的样式文件变多变大。要把表现的内容反复利用起来,在结构上要做的事情也将影响到样式的调用,而且如果能将每个结构的语义用很贴切的标签来体现,那对源代码的可读性也是一个很大的提升。

曾经看过一位朋友重构后的站点,他是一个<div></div>将页面所有的内容都包含在里面,当时我就在想,这样做有什么意义呢?是不是跟当初的用一个<table></table>将页面的所有内容包含在里面一样呢?这样做并不是说不可以,也并没有错,只是我们在结构上并不需要这样做,不是吗?一般最常见的是上(头部)中(内容)下(版权信息)三个部分,相对这样的,我们可以用三个<div></div>来实现。

<div id=”pageTop”></div>
<div id=”pageContent”></div>
<div id=”pageBottom”></div>

相对这样来说,总比<div></div>一个大大的框来约束内容来得强。

最后要说一下的就是,现在浏览器不统一,支持的内容不同,虽然我们可以用hack的方法来实现我们要的东西,不过我们为什么不稍做点牺牲呢。如果对版面的影响不大的话,是否可以放弃使用hack的方法呢?难道你的客户会去用不同的浏览器看看效果做对比吗?hack用得多了,只会对后期的修改上带来麻烦。

总结可以是一句话:那就是要注重语义。注重代码的重用性。