我有一个带有折叠和相邻边框的 HTML 表格,以及所有单元格上的标准边框,我想将特定行的边框颜色更改为其他颜色。问题在于,当边框折叠并且相邻单元格具有不同的颜色(或我假设的一般样式)时,浏览器不会以视觉上可接受的方式呈现。
这是我的 HTML:
<table>
<tr><td>Lorem</td><td>Ipsum</td></tr>
<tr><td>Lorem</td><td>Ipsum</td></tr>
<tr id="foo"><td>The border of these cells</td>
<td>is not uniformly red!</td></tr>
<tr><td>Lorem</td><td>Ipsum</td></tr>
</table>
CSS:
table { border-collapse: collapse; border-spacing: 0 }
td { padding: 5px; border: 3px black solid; }
#foo td { border: 3px red solid; }
上面还有一个JSFiddle。
不同的浏览器如何呈现它:
IE 7(标准):
IE 8 和 9(标准):
Firefox 11(注意左侧红色边框上微妙的视觉伪影以及它选择渲染角落的古怪方式):
铬 18:
问题:我能做些什么来获得视觉上可接受的渲染?那个渲染可以是“红色边界总是优先于黑色边界”的理想吗?
澄清:
我首先在寻找一个纯 CSS 解决方案。
如果这是不可能的,我会处理一些需要小的和本地化修改的东西(即不是我必须在任何地方的每张桌子上做的事情)。
Javascript 是可以接受的,因为在实际网站中,控制边框的样式是根据用户交互动态应用的。事件处理程序由几乎与this相同的代码设置。