7 个回答

能实现效果,而且没有bug的做法都是可取的,有些布局就适合用table布局,不需要强迫自己

比如这种布局,客户要求自适应,谁会用div来写
图片描述

因为 table 的层级嵌套多,还有就是大家要的是 div+cssflex+css,用 table 布局会显得很 low,让人看不起。

所以,我一直在接受着众多的 BS。

正经话:我也不知道为什么会很少人用,大概就是 table 层级嵌套的关系,还有一个比较关键的可能是 display:table 以及 table-cell 啥的不知道会不会跟 <td> 之类标签一样存在一些不了解的特性;还有可能就是大家宣传的比较多的就是新的技术点。

正经话是瞎猜,不正经话是瞎说。

泻药。
首先为何table布局会被淘汰,是因为DOM结构嵌套太深,外加无法处理一些特殊样式,或是说在高度和宽度上面虽然实现了自适应垂直和等比缩放等效果,但是有些特性在大规模实践中不怎么容易控制。

然后对我个人而言,在卡片类固定高度下的一行or多行文本的垂直居中上还是用了table的,其他较少,表格类另算。

不能兼容ie7是导致历史的教程大都不会去研究这个属性,现在table-cell用的还是挺多的。
还有个原因是表格布局的算法规范上给出的并不明确,很多时候给人感觉不可靠,而且有时候需要结合定位或者浮动来用,display:table就无效了,需要多套一层,没那么好用。像你给的链接中的自动占满剩余空间布局法感觉就有搞头,但是一般人很难想到表格可以有这样的效果,我也是第一次见。但是这个到底好不好用,还需要去验证去查规范搞清原理。而且现在又新出了flex,'grid','columns'专门用来布局的属性,虽然也复杂但更好理解也更可靠,table被人忽略就很正常了。

我觉得比较核心的问题是table布局仅支持IE8+,兼容性也好不到那里去,而且从功能到易用性都不如flex,这样他的地位就很尴尬了;

table 对结构的限制太死了,必须是 tr td 复杂布局还要算 rowspan 和 colspan,虽然可以用 thead tbody th 这些,但远远不够用阿

如果你用 vue / React 自己拼过表格,就知道这是多么的痛了。。。

宣传栏