今天让深圳网站设计带您一起回顾之前谈到的div+css的问题:
页面渲染性能问题:浏览器需要将整个表格完全读完后才会开始渲染。
不利于搜索引擎优化:搜索引擎喜欢内容与修饰分开。
可访问性差:屏幕朗读软件和盲文浏览器无法很好地理解Table中的内容。
不够语义(Semantic):我们需要语义的Web。
1.代码臃肿
首先,Table里面唯一无法用CSS定义的属性只有 Cellspacing, Cellpadding 几个,其它属性都可以并且应当使用CSS,这样剩下的,就是<table><tr><td>和<div>的对决,我相信一个动辄几十K大小的网页,即使使用了几十个 Table,因此多出来的代码也可以忽略不计,那些埋怨 Table 代码臃肿的人其实该检查自己的编码习惯,能将 Table 写得十分臃肿的人,写 Div 相比也未必会简洁到哪里。
2.页面渲染性能问题
我使用一台2004年的笔记本电脑,1.6G的CPU与1G内存,这种配置下,看不出Table布局和DiV布局在页面渲染上有任何速度差别,其实这点差别即使有,相对网络本身的延迟也可以忽略。
3.不利于搜索引擎优化
如果你尽可能使用CSS而不是Table的属性,前面说了,产生的代码和DiV的差别也不会很大,搜索引擎会歧视 <table> 标签吗,这种说法的依据我至今并没有找到。
4.可访问性差
这是Table固有的缺陷,不过多数DiV+CSS的拥有似乎并不是基于这个原因才排斥Table。
5.不够语义
语义Web的含义要深远得多,并不是仅仅在Table和 DiV上纠缠,即使W3C,也并没有规定 Table 只能用来显示表格数据,很多在 Table 的语义上进行纠缠的人,其实不妨再等等HTML5,那才是真正的语义。
本文的目的不是让你丢弃 Div投身 Table相反,如果DiV能满足你的设计需要,DiV仍是首选,但没必要避讳Table,否则会走入另外一个极端。很多使用DiV无法简单实现的设计,仍可以使用 Table,当然,不管使用什么,都应该用CSS将内容与修饰分离。DiV+ CSS和 Table+CSS都是合法的设计,谁更简单就用谁。根据我的经验,当你能预见你的内容的格式,对你即将加入的内容有能力完全控制其显示格式时,应当使用DiV+CSS;当你即将加入的内容是不固定的,你无法预见其格式,如果不想让页面坍塌,使用Table+CSS是一种保险的做法。