溢出用三个点表示在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属性。