|
DIV + CSS 这个称呼不知道是谁最早提出来的,然而经过这么多年大家也约定俗成了。 从DIV + CSS 诞生开始,有一些争论就没有停止过:
“为什么要使用DIV,TABLE也可以用啊。”
“为什么要改成DIV,DIV很容易引起布局混乱耶。”
在设计师中也出现几个不同的论调
1、唯table论,这一派的设计师通常工作时间都比较久,一直都用table,认为没必要改用DIV, 觉得DIV反而是一个不稳定的因素。常常让人诟病的行为是,多层嵌套TALBE,做一些1PX高度的TABLE然后设背景色,让TABLE充当分割线。
2、唯Div论,这一派的设计师通常是这几年内接触网页设计的,认为必须使用DIV,用TABLE做 的页面都不好意思跟别人打招呼。甚至出现一种DIV偏执狂,不考虑语义,所有地方都使用DIV,连UL,LI,SPAN等统统都抛在一旁。
3、折中论,这一派的说法是:在IE6没有消亡之前都不使用 DIV+CSS,使用DIV+TABLE也挺好不用考虑太多兼容性的问题。这是一个无奈的选择,当各大浏览器都在向W3C标准靠拢的时候,微软也在IE8中加入了这方面的支持,但软件更替有相当大的滞后性,IE6依然占据了巨大的市场份额,而为了这样一个技术失败,市场成功的作品,互联网不得不放缓脚步,等待它的消亡。
4、理性论,这一派认为WEB设计应该向W3C标准考虑,DIV应用于布局中,TABLE做数据呈现,本身并不排斥使用TABLE,只是不把TALBE当作布局工具。但对设计师的要求最高,为了推动技术的革新,为了页面的兼容性调试,付出了太多的汗水。
其实每一种说法都有自己的根据,我也在面临这个选择的时候犹豫过,特别是当一些资格比我老 的设计师问我这个问题时候:
“你为什么一定要改用DIV+ CSS?TABLE也可以做到这个效果啊。"
最初,我会说原因是DIV的结构比TABLE简单,能给页面减肥,减少嵌套,而且DIV不像TABLE 必须把内容全部加载完才能显示。
然后,当我学习W3C标准的精神后,我开始在回答中强调 HTML的标签的语义,在布局结构方面 使用table是不符合语义的,TABLE这个标签应该完成的是数据呈现的工作,布局交给DIV来做就好了。在这个阶段,我常常觉得把这个技术叫做DIV+CSS真是一个愚蠢的想法,DIV只是这个技术的一部分 而不是全部。
而现在我认为DIV +CSS并不是字面上的含义那么简单,而有两重内在含义:
1、结构与表现分离,用DIV完成结构,用CSS控制表现,这样带来的好处非常多,DIV精简了页面,提高了灵活性。而精通CSS的设计师能避免DIV的重复嵌套,从而大大提高页面加载速度,以及站点的可以维护性。
2、选用DIV 来配合CSS的原因,CSS 的核心是 “盒子模型”,而没有哪个标签能比DIV更好的诠释“盒子模型”的精髓,TABLE的结构过于复杂,并不能很好的做到这一点,虽然TABLE+CSS也是一种选择,但别忘了DIV还有另外一个优势,浮动层叠,而且用TABLE进行布局的网站是不能通过W3C验证的。
其实DIV的好处还远远不止这些,例如弹性布局,用户自定义布局,DIV都展现出不可思议的灵活性,而富有语义的结构对搜索引擎的友好度也比TABLE要来的高,更不用说跨平台的应用。DIV+CSS为我们提供了一个优雅而规范的技术框架,让我们能用最少的重复劳动,完成更多更美观的页面,从而提升整个团队的效率,甚至改变长期以来网页设计师与网页程序员无法同步工作的问题。
在我亲身经验中,使用DIV+CSS的团队,与使用TABLE+CSS的团队相比,工期缩短30%-50%。 |
|