1. 程式人生 > 實用技巧 >溢位用三個點表示在td中不好用的原因

溢位用三個點表示在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屬性。