溢位用三個點表示在td中不好用的原因
阿新 • • 發佈:2020-11-16
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屬性。