只写 border-width 不显示粗边框是因为浏览器默认 border-style 为 none,需显式设置 solid 等样式;border-collapse: collapse 下应优先给 table 设 border 或用方向性 border-width 配合 border-style。
直接设 border-width 很可能没效果——因为缺了 border-style,或者被 border-collapse: collapse 吃掉了。
border-width 不显示粗边框?浏览器默认给 table、td、th 的 border-style 是 none。宽度再大,样式为 none 就等于没边框。这不是 bug,是 CSS 规范行为。
border-width: 3px 却看不到边框?先查 computed 样式里的 border-top-style,不是只看 border-top-width
border-style 设成 hidden,比 none 还彻底,连宽度都不认border-style: solid !important,如果边框立刻出现,就坐实是 style 被覆盖了border-collapse: collapse 下怎么稳稳加粗外边框?绝大多数表格用了 border-collapse: collapse,这时相邻单元格的边框会合并,你设在 td 上的 border-width 可能被“覆盖优先级更高”的那条边压住——比如两个 td 水平相邻,右边 td 的左 border 和左边 td 的右 border 合并后,只显示其中一条。
table 元素自己加 border,例如 table { border: 3px solid #000; }
td, th { border: 1px solid #000; } 控制内线,避免内外都粗得糊成一团td { border-left-width: 3px; },但必须确保 border-left-style: solid 已存在别依赖 table 的 border,直接对每个单元格下手,但要绕开 collapse 的干扰逻辑。
立即学习“前端免费学习笔记(深入)”;
td, th { border: solid #000; border-width: 2px 1px 1px 2px; }——这样外侧边(左、上)更粗,内侧(右、下)细,视觉上既突出轮廓又不显臃肿tr:last-child td { border-bottom-width: 2px; }
th:first-child { border-left-width: 3px; }
border-style(哪怕写在前面或用简写),否则 border-width 被忽略写死 1px 在 retina 屏可能渲染成 2 物理像素,显得过粗;写 0.5px 又在旧版 Safari 不支持。
box-shadow: 0 0 0 0.5px #000,兼容性好,且不受 border-collapse 影响clamp():border-width: clamp(1px, 0.08vw, 2px),但需确认目标环境支持transform: scaleY(0.5) 模拟细边框——它只适用于单边,且可能影响文字对齐或触发重排最常被跳过的动作:改完 border-width 后没检查 border-style 是否还活着。collapse 模式下,边框不是“加粗”,而是“争夺控制权”。真要调粗细,得先抢回定义权。