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
也不會被隱藏。