用 border-image 给表格加装饰性边框完全可行,但必须手动给 或 加显式 border 且设 border-collapse: separate,否则 collapse 会干扰渲染;还需配齐 border、border-image-source、border-image-slice 等最小必要属性。

直接说结论:用 表格默认使用 哪怕只差一个属性, IE11 是最后一个支持 border-image 给表格加装饰性边框完全可行,但必须手动给 <table> 或 <code><tbody> 加显式 <code>border,且不能依赖默认边框行为——表格的 border-collapse 会干扰它。
为什么 table 元素上 border-image 容易失效
border-collapse: collapse,这会让单元格边框合并,同时“吃掉”外层 <table> 的边框渲染通道。即使你写了 <code>border-image,浏览器也常直接跳过渲染。
<table> 写 <code>border-image 不生效?大概率是 border-collapse: collapse 在作祟
border-image 生效,必须先设 border-collapse: separate(或干脆不设,让它 fallback 到默认 separate)<table> 的 <code><div> 上,绕开表格自身渲染逻辑
<li>如果坚持用在 <code><table> 上,需额外加 <code>border-spacing: 0 配合 separate,否则可能留白缝
border-image 最小必要配置缺一不可
border-image 就会静默退化为纯色边框(通常是 border-color 或透明),控制台也不报错,极难定位。
border 声明:border: 20px solid transparent(solid 不能省,transparent 是安全底色)border-image-source: url("frame.png")(注意路径可访问性,file:// 协议下跨文件会静默失败)border-image-slice: 30(数值单位是 px,写成 30px 反而无效)border-image-repeat: round,避免拉伸失真;stretch 在表格宽高不定时极易糊边图片素材与切片值怎么配才不出错
border-image-slice 不是越大越好,它按像素从原图四边向内裁,一旦任一方向切超了图尺寸,整个边框就 fallback 成纯色——没提示、不报错、只默默失效。
frame.png 是 120×120px,那么 border-image-slice: 30 安全,border-image-slice: 65 就可能崩border-image-source: url("data:image/png;base64,iVBOR..."),避开跨域和路径问题兼容性和 fallback 要提前想好
border-image 的 IE 版本,现代项目基本不用考虑,但 round 在旧 Safari(repeat 在非整数倍尺寸下容易露白缝。
border-color 作为降级:border: 20px solid #e0e0e0,确保无图时仍有可用边框-webkit-border-image),Chrome/Firefox/Edge 现代版本已原生支持标准语法border-image 不会重绘——如果宽高变化大,建议用 JS 监听 resize 后强制重排(offsetHeight 触发)











