众所周知,这(DIV+CSS和Table)两种语句都经常被开发人员使用了来控制界面显示,但是这两种语法也有很大的不同,下面分别从这两种语句的优缺点进行分析。
制作效率
我想没人反对表格的制作效率要高于Div的效率。很明显Div布局代码全部都要手写。即使你在熟悉代码,也没有 Dreamweaver生成来的快吧!所以Table可以很容易建立起结构化的界面,通过table自身的参数定义,我们能把页面布局很快定义成我们所需要的效果。
浏览器的兼容问题
table和div在兼容问题中,table更具有优势。
我们常用的IE6.0,IE7.0火狐Firefox浏览器对div css设置上非常挑剔,往往同一个css在2种浏览器上会有不同的结果,对设计制作人员来说是个可怕的问题。我们不可能对用户的浏览器进行排斥和统一化,因此只有通过在制作的时候调整我们的语法和布局方法。div要求我们严格css支持,而table可以不用考虑这么多。table的严谨在不同浏览器中得到了很好的表现。
扩展性和可读性
Table的扩展性和可读性都是很差的,扩展差表现在维护和修正上面。DIV不用重新设计排版网页,甚至于不用动原网站的任何HTML和程序页面,只需要改动CSS文件就完成了所有改版。而Table则需要一个页面一个页面的更改需要变动的地方。
而可读性table基本上是没有的,谁能从一大堆代码里面看的出哪是标题哪是正文。全部是<table><tr><td></td></tr></table>。还一个障碍便是当table容器内内容过多时,使页面的加载时间增加,因为浏览器首先要加载<table> 标签,而在加载到</table>之前,table里的内容不会显示。
Table和div布局都有各自的优缺点,Div布局的优点:
1、大大缩减页面代码,提高页面浏览速度,缩减带宽成本;
2、结构清晰,容易被搜索引擎搜索到,天生优化了seo
3、缩短改版时间。只要简单的修改几个CSS文件就可以重新设计一个有成百上千页面的站点。
4、强大的字体控制和排版能力。CSS控制字体的能力比糟糕的FONT标签好多了,有了CSS,我们不再需要用FONT标签或者透明的1 px GIF图片来控制标题,改变字体颜色,字体样式等等。
5、CSS非常容易编写。你可以象写html代码一样轻松地编写CSS。
6、提高易用性。使用CSS可以结构化HTML,例如:<p>标签只用来控制段落,heading标签只用来控制标题,table标签只用来表现格式化的数据等等。你可以增加更多的用户而不需要建立独立的版本。
7、可以一次设计,随处发布。你的设计不仅仅用于web浏览器,也可以发布在其他设备上,比如PowerPoint。
8、更好的控制页面布局。
9、表现和内容相分离。将设计部分剥离出来放在一个独立样式文件中,你可以减少未来网页无效的可能。
10、更方便搜索引擎的搜索。用只包含结构化内容的HTML代替嵌套的标签,搜索引擎将更有效地搜索到你的内容,并可能给你一个较高的评价(ranking)。
11、Table 布局灵活性不大,你只能遵循 table tr td 的格式。而div 你可以 div ul li 也可以 ol li 还可以 ul li ……但标准语法最好有序的写。
12、另外如果你不是JavaScript的高手,你可以不必去写ID,只用class就可以。当客户端程序员写完程序,需要调整时候,你可以在利用他的ID进行控制。
13、Table 中布局中,垃圾代码会很多,一些修饰的样式及布局的代码混合一起,很不利于直观。而Div 更能体现样式和结构相分离,结构的重构性强。
14、在几乎所有的浏览器上都可以使用。
15、以前一些非得通过图片转换实现的功能,现在只要用CSS就可以轻松实现,从而更快地下载页面。
16、使页面的字体变得更漂亮,更容易编排,使页面真正赏心悦目。
17、你可以轻松地控制页面的布局 。
总结:
对于公司经常制作的中小型企业网站,大家可以先试着用div+table去做,这只是一个过渡期。你会发现这个时期做起来比纯table和纯div+css去做要快很多。两种做法的优缺点都可以很好的互补。熟练后,可以用div去做下。另外w3c之所以推出div+css,其目的就是为了提高执行效率,优化程序,由原有的HTML向XML过度,作为长远的发展.div肯定是胜过table的。