You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置display: contents后表格background-color、border样式不生效如何解决?

样式失效根因

你为table tr设置了display: contents属性,该属性会让元素本身不生成独立的渲染盒子,所有附着在tr节点上的背景、边框样式都会失去承载容器,因此直接给tr设置样式不会生效。

解决方案

方案1:移除display: contents配置(操作最简单)

如果没有必须使用Grid布局实现表格的强需求,直接删除table thead, table tbody, table tr的display: contents配置,恢复表格元素默认的渲染规则,你编写的tr样式即可直接生效。
调整后的基础表格CSS如下:

table {
  width: 100%;
  overflow: auto;
  border-collapse: collapse; /* 合并相邻边框,避免出现重复线条 */
}

方案2:保留Grid布局,把样式挂载到单元格上

如果需要保留现有的Grid布局逻辑,保持display: contents配置不变,把奇偶行的样式作用到对应行的td/th单元格上即可:

/* 奇数行样式 */
tbody tr:nth-child(odd) td,
tbody tr:nth-child(odd) th {
  border: solid 1px #e2e2e2;
  background-color: #f4f4f4;
}
/* 偶数行样式 */
tbody tr:nth-child(even) td,
tbody tr:nth-child(even) th {
  border: solid 1px #e2e2e2;
  background-color: blue;
}

如果出现边框重叠变粗的问题,可以给table新增gap: 0配置消除Grid单元格间隙,再针对性去掉相邻单元格的重复边框即可。

内容的提问来源于stack exchange,提问作者Enigmatic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:45:01