必须给table设置border-collapse: collapse,否则td/th的border-left等单边属性无法生效;其前提包括table自身声明该属性、td/th显式定义边框、避免border简写覆盖及选择器精准匹配。

HTML表格本身不直接支持只显示左边框这种精细控制,必须靠CSS的border-left等属性配合选择器来实现。
为什么border简写在表格里容易出双线?
给 单独给 用CSS选择器精准定位比逐个加class更可靠: 实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。 真正麻烦的不是写哪条规则,而是搞清加
border: 1px solid #000,再给也加同样边框,就会出现相邻单元格之间两条边框叠加。这不是bug,是默认 border-collapse: separate的行为。加
border-collapse: collapse
和 的 border-left才真正只作用于左侧边缘
none,比如:border: none; border-left: 2px solid #333;
border-left在上生效的前提条件 写 border-left: 3px dashed red,但页面没反应?大概率卡在这几个点:没设
border-collapse: collapse,导致边框被“撑开”或被覆盖
的 border-left-width为0时,border-left-style(比如solid)会失效
或 设置了更高优先级的
border简写,把border-left覆盖了
border-left-style: hidden但没配宽度——hidden需要明确border-left-width才起作用怎么只让第一列有左边框?
和 :用 td:first-child, th:first-child { border-left: 2px solid #666; }
,也可以给设border-left,但注意它只对border-collapse: collapse有效:nth-child(1)去选行内第一个单元格——当某行有colspan时会错位加样式,再补一句table { border-collapse: collapse; }
border-collapse、层叠顺序和选择器匹配范围这三者怎么咬合。漏掉任意一个,border-left就可能静默失效。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










