text-truncate和text-wrap单独使用无效,因前者缺宽度与display设置、后者对无空格串无效;table-layout: fixed是省略号生效的必要条件,需作用于table标签。

为什么直接加 text-truncate 或 text-wrap 没反应
不是类没加载,是它们各自只管一半事:text-truncate 只打包了 white-space: nowrap、overflow: hidden、text-overflow: ellipsis,但不设宽度、也不改 display;text-wrap 仅等价于 white-space: normal,对长 URL、UUID 这类无空格串完全无效。更关键的是,<td> 默认是 <code>display: table-cell,而 text-overflow: ellipsis 只在块级或 inline-block 元素上生效——所以直接套类等于白加。
table-layout: fixed 是省略号能出现的硬开关
不加它,浏览器按内容自动算列宽,你写的 width 或 max-width 会被无视;加了它,表格才真正按你定义的 <th> 宽度或列配置来切分。但要注意副作用:
<ul><li>
<code>table-layout: fixed 必须加在 <table> 标签上,不能只写在 <code><div class="table-responsive"> 外层
<li>它会让所有列统一按设定宽度分配,哪怕某列内容很短,也会留出空白</li>
<li>若配合 <code>table-responsive 使用,需额外给需要换行的 <td> 加 <code>style="white-space: normal;",否则继承的 nowrap 会压制 text-break
超长内容该截断还是该折行,取决于字段类型
选错策略会导致体验崩坏:
- 用户昵称、标题、描述类文本 → 用省略号:
white-space: nowrap+overflow: hidden+text-overflow: ellipsis+max-width - URL、API 路径、UUID、base64 等纯字母数字串 → 用折行:
text-break+ 显式white-space: normal(尤其在table-responsive内) - 既想省略又想悬停看全量 →
formatter返回带title的<span></span>,别直接在td上设title属性(特殊字符会被截断或转义)
BootstrapTable 插件里别碰 class,用 cellStyle + formatter
插件渲染后实际结构是 <td><div class="td-inner">...</div></td>,直接给 <td> 加 class 会被内部 div 隔离。正确做法是:
<ul>
<li>
<code>cellStyle 返回对象,里面写 css 字段,属性名用引号(如 'max-width'),值用字符串(如 '120px')
formatter 必须返回字符串(推荐 span.outerHTML),不要返回 DOM 节点(某些版本会触发渲染异常)textContent 赋值,不用 innerHTML,防 XSS 和解析失败th 第一行控制,改一个就影响整列;max-width 比 width 更适应内容波动;-webkit-line-clamp 不要指望它跨浏览器稳定工作——真要两行省略,得接受 Firefox 下的降级处理。


















