gpt4 book ai didi

html - 如何在 tr 的背景颜色上显示 td 的边框

转载 作者:太空狗 更新时间:2023-10-29 15:01:34 24 4
gpt4 key购买 nike

在 Firefox 24 中使用 html 表格显示信息,我大量使用 CSS 来格式化行和列。

我遇到的问题是我为 <td> 指定了一些边框, 和一个 background-color对于 <tr> , 但 tr 的背景颜色与 td 的边框重叠。tr 样式显示在 td 样式之上是否正常?

这两个问题是:

  1. 所有带有 class="ref" 的 td应该正确显示 2px 左右边界 .ann.tbx行(设置 tr 背景颜色时不是这种情况)
  2. 即使在相邻单元格中设置了背景色,也​​应始终显示第一列的右边框,参见。

    div.tb tr td:first-child {
    border-right: 1px solid black;
    }

这是一个代码示例 ( http://jsfiddle.net/RVJSD/ ):

CSS:

/* Default reset style sheet */
* {
margin: 0;
padding: 0;
position: relative;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

.tb {
font-family: Ubuntu;
font-size: small;
text-align: right;
}

div.tb tr td {
padding: 0 2px 0 2px;
}

div.tb tr td {
padding: 0 2px 0 2px;
}

div.tb tr td:not(:first-child) {
width: 92px;
}

div.tb tr td:first-child {
border-right: 1px solid black;
}

div.tb tr:not(:first-child) td:not(:first-child):not(.ref) {
border-right: 1px solid #b0b0b0;
}

div.tb tr td.ref { /* FIXME */
border-left: 2px solid black;
border-right: 2px solid black;
}

div.tb tr.ann {
background: #99CCFF;
font-size: 1.3em;
font-weight: bold;
text-align: center;
border-bottom: 1px solid black;
}

div.tb tr.ann td {
height: 2.5em;
}

div.tb tr.ann td:first-child {
background: white;
font-size: small;
font-weight: bold;
text-align: right;
}

div.tb tr.ann td.ref {
background: green;
color: white;
}

div.tb tr.txb {
background: #99CCFF;
font-weight: bold;
}

HTML:

<body>
<div class="tb">
<table>
<thead/>
<tbody>
<tr class="ban"><td>Barfoo</td><td>Bar</td><td>Blah</td><td>Foobar</td><td>FooBlah</td><td>BlahBar</td><td>Foo</td></tr>
<tr class="ann"><td>ann</td><td>13</td><td>9</td><td class="ref">13</td><td>12</td><td>9</td><td>15</td></tr>
<tr class="nbr"><td>nbr</td><td>-34</td><td>20</td><td class="ref">15</td><td>18</td><td>123</td><td>12</td></tr>
<tr class="txb"><td>txb</td><td>2,83%</td><td>3,38%</td><td class"ref">3,84%</td><td>3,21%</td><td>3,52%</td><td>3,27%</td></tr>
</tbody>
</table>
</div>
</body>

如果可能,我想保留设置 border-collapse:collapse (而不是 separate)像这样:

table {
border-collapse: collapse;
border-spacing: 0;
}

而且我不喜欢 Table Border Overlap解决方案,因为 div 添加了额外的边框宽度并使代码不那么清晰。

最佳答案

您的样式表使用 position: relative 设置所有样式。这会导致每个单元格成为其自己的堆叠上下文,并在它们重叠时将其背景及其行和表格的背景绘制在较早单元格的边框上(在折叠边框模型中它们会重叠)。由于您将所有边框都放在单元格的右侧(例如,取决于前面显示的单元格的边框),所以事情失败了。

请注意,根据规范,此处的行为并非未定义; CSS(至少从 2.1 版开始)没有定义相对定位表格单元格时会发生什么。

关于html - 如何在 tr 的背景颜色上显示 td 的边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19117214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com