uniapp中table表格設置寬度無效的原因以及解決方法
table表格設置標題無效解決辦法及原因探索
此屬性并不只限于uniapp同時適用于普通表格設置
前言
本篇文章講解了,實際開發(fā)中發(fā)現(xiàn)表格設置的寬度沒有生效,無論是設置行內(nèi)樣式,還是給css樣式設置important 的最高權(quán)重也沒有效果,但是給中文文字設置寬度的樣式是有效果的,很奇怪為什么,下面就一起來看看究竟為何。
一、示例
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>
輸出結(jié)果:
看到結(jié)果并不是想我設置的寬度那樣是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>
輸出結(jié)果:
我們很清楚的看到表格內(nèi)容如果換成漢字的話,可以保證寬度固定為100px但是內(nèi)容自動換行了。那我們再驗證一下,看下面的第三個示例。
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>
輸出結(jié)果:
這次我們證明了,漢字是可以換行的,但是數(shù)字不行。
二、原因
1、 查看文檔發(fā)現(xiàn)table表格有個table-loyout屬性
值 | 描述 |
---|---|
auto | 默認。列寬度由單元格內(nèi)容設定。 |
fixed | 列寬由表格寬度和列寬度設定。 |
inherit | 規(guī)定應該從父元素繼承 table-layout 屬性的值。 |
可以看到默認情況會使用單元格內(nèi)容將表格最大寬度填滿,設置表格的寬度就會失效。
給表格設置屬性值為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>
輸出結(jié)果:
發(fā)現(xiàn)效果還是一樣,并沒有換行,但寬度是我們想要的寬度。
3、又搜索了一下發(fā)現(xiàn)這回是內(nèi)容本身的問題了,不是表格的問題了。
因為連續(xù)的數(shù)字是理解為一個整體不會自動換行,所以需要設置word-wrap屬性允許換行。
值 | 描述 |
---|---|
normal | 只允許的斷字點換行(瀏覽器保持默認處理) |
break-word | 在長單詞或 URL 地址內(nèi)部進行換行。 |
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>
輸出結(jié)果:
可以看到內(nèi)容自動換行,并且寬度是我們想要的寬度。
三、拓展
以上的換行可以使用另個一個屬性代替,word-break:
值 | 描述 |
---|---|
normal | 使用瀏覽器默認的換行規(guī)則。 |
break-all | 允許在單詞內(nèi)換行。 |
keep-all | 只能在半角空格或連字符處換行。 |
定義和用法
word-break 屬性規(guī)定自動換行的處理方法。提示:通過使用 word-break 屬性,可以讓瀏覽器實現(xiàn)在任意位置的換行。
1、區(qū)別:
word-break不會留空隙,而word-wrap會在空格和cjk(中,日,韓)字符換行
2、示例截圖:(可以猜一下哪個是word-break的效果)
總結(jié)
到此這篇關于uniapp中table表格設置寬度無效的原因以及解決方法的文章就介紹到這了,更多相關uniapp table表格設置寬度無效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
javascript實現(xiàn)驗證身份證號的有效性并提示
下面分享的JS腳本是我用過的最完善的身份證號的驗證程序了,因為只有真正的身份證號才能被通過,小伙伴們可以試試。直接復制運行。2015-04-04js中toString()和String()區(qū)別詳解
本文主要介紹了js中toSring()和Sring()的區(qū)別。具有很好的參考價值。下面跟著小編一起來看下吧2017-03-03bootstrap動態(tài)添加面包屑(breadcrumb)及其響應事件的方法
這篇文章主要介紹了bootstrap動態(tài)添加面包屑(breadcrumb)及其響應事件的方法,涉及js數(shù)據(jù)傳輸及定義響應事件相關操作技巧,需要的朋友可以參考下2017-05-05javascript實現(xiàn)dom動態(tài)創(chuàng)建省市縱向列表菜單的方法
這篇文章主要介紹了javascript實現(xiàn)dom動態(tài)創(chuàng)建省市縱向列表菜單的方法,可實現(xiàn)省市列表菜單效果,涉及javascript鼠標事件及頁面處理json數(shù)據(jù)的技巧,需要的朋友可以參考下2015-05-05JavaScript canvas實現(xiàn)鏡像圖片效果
這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)鏡像圖片效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08