# 表格的换行与不换行 [TOC] ## 必备代码 若要使用该功能,必须引用以下代码 ``` import '@/assets/less/TableExpand.less' ``` ![](https://img.kancloud.cn/92/71/9271fa3e78669198ffb8b50b28b13a23_473x52.png) ## 一、强制表格所有列不换行 仅需在 `a-table` 上添加一个 class 样式即可(弊端: 会导致列设置宽度失效) ![](https://img.kancloud.cn/04/7e/047ed88cb7b769354ce8aebe316bf577_447x50.png) ``` class="j-table-force-nowrap" ``` ### 添加前效果 ![](https://img.kancloud.cn/80/69/8069ae63475b561f33dce674663ac819_927x300.png) ### 添加后效果 ![](https://img.kancloud.cn/4a/e4/4ae41878f6227e075d44dae370fbea26_971x603.png) ## 二、单个列强制不换行 给需要不换行的的列上加上以下代码 ``` js customRender: (text) => (<span class="j-force-nowrap">{text}</span>) ``` ![](https://img.kancloud.cn/66/2f/662f2d4538fce3b88ce993a22f14b9d2_792x268.png) 也可以写一个公共的方法,统一调用 ``` js const forceNowrap = (text) => (<span class="j-force-nowrap">{text}</span>) ``` ![](https://img.kancloud.cn/bc/b2/bcb21cfaad6c3396834b31a246b699d9_866x73.png) ![](https://img.kancloud.cn/52/ac/52acd0537ffd337b859f64e4dab2a894_351x273.png) 如果设置了 slot,可以在slot里加上class,比如 ![](https://img.kancloud.cn/c1/18/c118616079771fb28e4857e19ab38eb2_950x368.png) ## 三、强制表格换行 仅需在 `a-table` 上添加一个 class 样式即可 ![](https://img.kancloud.cn/f3/9f/f39f57021aa45ef91639f454559b7c77_424x54.png) ``` class="j-table-force-wrap" ``` ### 添加前效果 ![](https://img.kancloud.cn/80/69/8069ae63475b561f33dce674663ac819_927x300.png) ### 添加后效果 ![](https://img.kancloud.cn/d8/2d/d82d27256b377e5574c1f9b1154be111_938x396.png) ## 四、固定操作列或者其他列字段 > 20200427 平台升级,代码生成器改造点: > 1. 默认加上 class="j-table-force-nowrap",强制列表不换行 > 2. 取消了操作列的默认固定(目的是为了更好的移动自适应效果),如果需要固定操作列,参考此文档。 需在 `a-table` 上添加一个 属性 :scroll="{x:true}" 即可 ![](https://img.kancloud.cn/93/ef/93effb9d7960d18066a6721be3127e26_644x233.png) 需在 `column` 上添加一个 属性 fixed:"right", 同时最好指定宽度 ![](https://img.kancloud.cn/ab/5f/ab5f896f3fcaadf8f52f47e21a9017bb_570x443.png) 选择框列固定在左边,加上属性 `,fixed: true` ![](https://img.kancloud.cn/68/e1/68e104f155c311d104dabaf5b64ce77e_875x380.png) ## 五、如何删除强制不换行样式,切换至原始写法 删除样式引入 ![](https://img.kancloud.cn/d3/f4/d3f414e8936549dab5814c30bf091309_575x160.png) 删除样式属性 ![](https://img.kancloud.cn/a9/d6/a9d685a130f9893c546461d68af87750_729x305.png) ## 常见问题解答 ### 强制换行样式不生效? 为什么即使加上了 `j-table-force-wrap` 样式后也没有换行? * `原因`: 达不到换行要求 因为没有设置列的宽度,所以默认是自适应的宽度,当程序认为有足够的宽度可以显示的时候,就不会换行了。 ![](https://img.kancloud.cn/76/45/764548e99f272ca07cc9da6387990755_1653x605.png) * `解决方法`:主动给要换行或者内容可能很长的列设置宽度 ![](https://img.kancloud.cn/f2/b6/f2b6047e23587f99b72cab2e7e155dd1_327x153.png) * `效果`: ![](https://img.kancloud.cn/6f/ba/6fba9fc867c34c97c123064c94b7ce06_1634x588.png) 代码备份 ``` /** [表格主题样式二] 表格强制英文换行 */ .j-table-force-wrap { th { white-space: nowrap; } td { white-space: normal; word-wrap: break-word; word-break: break-all; } } /** 单列或文本强制不换行 */ .j-force-nowrap { white-space: nowrap; } ```