表格单元格宽度
更新:HHH   时间:2023-1-7


tableLayout 属性用来显示表格单元格、行、列的算法规则。

固定表格布局:
固定表格布局与自动表格布局相比,允许浏览器更快地对表格进行布局。

在固定表格布局中,水平布局仅取决于表格宽度、列宽度、表格边框宽度、单元格间距,而与单元格的内容无关。

通过使用固定表格布局,用户代理在接收到第一行后就可以显示表格。

自动表格布局:
在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。

此算法有时会较慢,这是由于它需要在确定最终的布局之前访问表格中所有的内容。

1、不设置td宽度的情况

不设置td宽度的时候,两种布局都是一样的展现形式,当然在table-layout为fixed的时候,不设置第一行的td的宽度是不友好的做法。

2、表头单元格和行单元格宽度设置不一致情况

在table-layout为fixed的时候,会以表头的为准;不设置的时候,哪个宽度大,以哪个为准(注意:在不设置fixed的情况下,如果有width设置的为百分比,那设置为px的宽度会被忽略,不会进行比较)。

3、两行设置的td宽度不统一

不设置的时候,哪个宽度大,以哪个为准;在table-layout为fixed的时候,如果第一行有设置(包括thead里面的tr),那么以第一行为准,如果没有设置,那么会自动排列,不管其他行怎么设置都不会改变宽度。

4、同一行的td宽度设置不同

在table-layout为fixed的时候,设置第一行的td,如果所有的td加起来宽度没达到table设定的宽度,会自动排列,超过了情况,如果采用的是百分比,那依旧按照百分比计算比如(table设定的宽度/all)*width,如果是用的px,那会将表格宽度增加超过设置的宽度,对于最后一个td不设置,在前面设置的宽度没有超过表格设置的宽度的时候,会自动排列,如果超过了,会在表格外(这种模式前面的单元格有优先权,会排挤后面的单元格);

不设置的情况下,如果所有的td加起来宽度没达到table设定的宽度,那依旧按照百分比计算比如(table设定的宽度/all)*width,如果超过,那么前面的基本能保持,最后一个td的宽度会被压缩到很小很小,对于最后一个td不设置,在前面设置的宽度没有超过表格设置的宽度的时候,会自动排列,如果超过了,和td加起来宽度超过table设定的宽度的情况一样。


返回web开发教程...