溢出用三个点表示在td中不好用的原因

table布局(table-layout:fixed)

官方定义

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

固定表格布局:

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

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

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

自动表格布局:

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

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

项目中的应用

需求:td行中,文字不换行,超出的话用三个点显示

实施:

td{

​      overflow: hidden;

​      text-overflow: ellipsis;

​      white-space: nowrap;  

​    }

结果:没有达到预期的效果

问题分析:因为table有一个table-layout的属性,默认是automatic,列宽度由单元格内容设定。即使我们手动给td加上宽度也是不行的,td宽度还是会随着内容进行变化,要将table-layout属性设置为fixed,即列宽由表格宽度和列宽度设定。

总结:文字溢出隐藏应用三个点代替时,要有宽度,(不然无法判断溢出)table中应加table-layout:fixed来控制宽度。

解决过程:之前不知道这个table-layout属性时,给td里加了p标签发现也达到了预期效果,由此分析出td设置的宽度失效了,最终发现了table-layout:fixed属性。

原文地址:https://www.cnblogs.com/wszzj/p/13984272.html