border-style: solid 为什么没生效?
最常见原因是 border-width 为 0 或未设置。HTML5 中边框默认宽度是 0,哪怕写了 border-style: solid,只要没配 border-width(或简写 border),视觉上就是“没边框”。
- 必须显式设置宽度,例如:
border: 1px solid #000或分开写border-width: 1px; border-style: solid; - 注意缩写顺序:
border:,漏掉任意一项都可能失效 - 如果用了
border: none或border: 0在父级或重置样式中,会覆盖后续的solid声明
元素没有边框是因为 display 或 box-sizing 问题
某些元素(如 、)在浏览器默认样式里自带 border,但一旦设了 display: inline 或 display: flex,又没重置 border,容易误判为“失效”;更隐蔽的是 box-sizing: border-box 下,若 width 和 padding 已占满容器,加边框会导致溢出或被裁剪,看起来像没画出来。
- 检查 computed styles,确认
border-top-width等是否真为 0px - 对内联元素(如
)设边框时,需同时设display: inline-block或block,否则边框不渲染 - 用
outline临时调试:它不占布局空间,能快速验证是否真没画线
伪元素 ::before / ::after 的边框不显示
伪元素默认是 display: inline,且无内容(content: "" 必须存在)时,即使设了 border 也不会渲染——因为没有尺寸,边框无处可画。