uniapp中table表格設置寬度無效的原因以及解決方法
table表格設置標題無效解決辦法及原因探索
此屬性並不隻限於uniapp同時適用於普通表格設置
前言
本篇文章講解瞭,實際開發中發現表格設置的寬度沒有生效,無論是設置行內樣式,還是給css樣式設置important 的最高權重也沒有效果,但是給中文文字設置寬度的樣式是有效果的,很奇怪為什麼,下面就一起來看看究竟為何。
一、示例
1、代碼示例:
<table border="1" style="width:100px"> <th>11111</th> <th>22222</th> <th>33333</th> <tr> <td>11111</td> <td>11111</td> <td>11111</td> </tr> <tr> <td>22222</td> <td>22222</td> <td>22222</td> </tr> <tr> <td>33333</td> <td>33333</td> <td>33333</td> </tr> </table>
輸出結果:
看到結果並不是想我設置的寬度那樣是100px,我們再來看一組示例。
2、代碼示例
<table border="1" style="width: 100px;"> <th>你好你好你好你好你好1</th> <th>你好你好你好你好你好2</th> <th>你好你好你好你好你好3</th> <tr> <td>換行換行換行換行1</td> <td>換行換行換行換行1</td> <td>換行換行換行換行1</td> </tr> <tr> <td>換行換行換行換行2</td> <td>換行換行換行換行2</td> <td>換行換行換行換行2</td> </tr> <tr> <td>換行換行換行換行3</td> <td>換行換行換行換行3</td> <td>換行換行換行換行3</td> </tr> </table>
輸出結果:
我們很清楚的看到表格內容如果換成漢字的話,可以保證寬度固定為100px但是內容自動換行瞭。那我們再驗證一下,看下面的第三個示例。
3、代碼示例:
<table border="1" style="width:100px"> <th>11111我可以換行</th> <th>22222我可以換行</th> <th>33333</th> <tr> <td>11111</td> <td>11111我可以換行</td> <td>11111</td> </tr> <tr> <td>22222</td> <td>22222</td> <td>22222</td> </tr> <tr> <td>33333</td> <td>33333</td> <td>33333我可以換行</td> </tr> </table>
輸出結果:
這次我們證明瞭,漢字是可以換行的,但是數字不行。
二、原因
1、 查看文檔發現table表格有個table-loyout屬性
值 | 描述 |
---|---|
auto | 默認。列寬度由單元格內容設定。 |
fixed | 列寬由表格寬度和列寬度設定。 |
inherit | 規定應該從父元素繼承 table-layout 屬性的值。 |
可以看到默認情況會使用單元格內容將表格最大寬度填滿,設置表格的寬度就會失效。
給表格設置屬性值為fixed看看效果
2、示例:
<table border="1" style="width:100px;table-layout: fixed;"> <th>111111111</th> <th>222222222</th> <th>33333</th> <tr> <td>11111</td> <td>11111</td> <td>11111</td> </tr> <tr> <td>22222</td> <td>22222</td> <td>22222</td> </tr> <tr> <td>33333</td> <td>33333</td> <td>33333</td> </tr> </table>
輸出結果:
發現效果還是一樣,並沒有換行,但寬度是我們想要的寬度。
3、又搜索瞭一下發現這回是內容本身的問題瞭,不是表格的問題瞭。
因為連續的數字是理解為一個整體不會自動換行,所以需要設置word-wrap屬性允許換行。
值 | 描述 |
---|---|
normal | 隻允許的斷字點換行(瀏覽器保持默認處理) |
break-word | 在長單詞或 URL 地址內部進行換行。 |
4、示例代碼:
<table border="1" style="width:100px;table-layout: fixed; word-wrap: break-word;"> <th>111111111</th> <th>222222222</th> <th>33333</th> <tr> <td>11111</td> <td>11111</td> <td>11111</td> </tr> <tr> <td>22222</td> <td>22222</td> <td>22222</td> </tr> <tr> <td>33333</td> <td>33333</td> <td>33333</td> </tr> </table>
輸出結果:
可以看到內容自動換行,並且寬度是我們想要的寬度。
三、拓展
以上的換行可以使用另個一個屬性代替,word-break:
值 | 描述 |
---|---|
normal | 使用瀏覽器默認的換行規則。 |
break-all | 允許在單詞內換行。 |
keep-all | 隻能在半角空格或連字符處換行。 |
定義和用法
word-break 屬性規定自動換行的處理方法。提示:通過使用 word-break 屬性,可以讓瀏覽器實現在任意位置的換行。
1、區別:
word-break不會留空隙,而word-wrap會在空格和cjk(中,日,韓)字符換行
2、示例截圖:(可以猜一下哪個是word-break的效果)
總結
到此這篇關於uniapp中table表格設置寬度無效的原因以及解決方法的文章就介紹到這瞭,更多相關uniapp table表格設置寬度無效內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- jquery實現拖拽table表頭改變列寬
- element表格去掉表頭的實現方法
- vue-print-nb實現頁面打印功能實例(含分頁打印)
- word怎麼設置默認模板 word設置模板的教程
- Python設置Word全局樣式和文本樣式的示例代碼