列表是list,不是table…
HTML标签应该只有语义上的表达功能,样式只应该由CSS定义。不要说我学术,这是W3C说的:Tables must not be used as layout aids.
http://www.w3.org/wiki/HTML/Elements/table如果table仅是用于排版,那么它就会限制样式的灵活性。
考虑京东首页的商品展示,每行显示3个商品,这用表格实现是很容易的。
但如果要针对不同的窗口大小,动态改变每行的列数,那么用table就惨了。
在论坛中,主题是多列多行的排列,一般会有标题、作者、日期等表头,在使用盲人语音阅读器时,每行都会读成标题xxx,作者xxx,日期xxx,这在语义上是完全正确的。
其实就我的理解,是否有/可加表头是table最重要的特征。从这个意义上来说,我们填的报名表、登记表等各种表并不是表格(table),而是表单(form),用table去实现,在语义上是错误的,而且样式完全定死了。
顺带一提,V2EX的table是在li里面,这完全就只能用于排版,没有任何语义功能。
假设想把头像放在最右边,或是将作者和时间放在最下面的话,就只能改HTML了,CSS没法做到。
最后,印象中table里的所有资源加载完才能下载其他部分,所以如果某个单元格里的图像太大,就会一直等它下完才能显示剩余部分。而且一般不会在一个列表/表中放超过100行数据,所以它们的渲染速度应该都在毫秒级,这点性能差异应该是不用担心的。