table-layout:auto
是表格布局中的默认值,采用浏览器自动表格布局算法,可是缺点会很明显css
td
指定的width
不必定生效,td
的width
会自动调整text-overflow: ellipsis
也会失效,一样,img
会撑大td
举个例子:html
<table> <tr> <td>31</td> <td>32ssssssssssssss</td> </tr> <tr> <td>31</td> <td> <img src="assets/tiger.png" alt=""> </td> </tr> </table>
table { display : table; width : 200px; height : 200px; border-collapse : collapse; table-layout : auto; } td { overflow : hidden; width : 100px; height : 100px; border : 1px solid black; text-overflow : ellipsis; }
这样的结果就是这样的:算法
td
的 width
和 img
都没有溢出隐藏,反而撑大了td
,可是若是把 table-layout
改成 fixed
,效果如图:浏览器
td
的text-overflow : ellipsis
和overflow : hidden
都会起做用,可是这里也有几个地方要注意:布局
text-overflow : ellipsis
生效的前提是
overflow
不为visible
,最好是相似hidden
的值table
的width
td
的宽度加起来超过table
的width
,即便给table
加上overflow:hidden
,td
也不会被隐藏。