当存在 <td> 的全局样式时,将背景颜色指定为行的内联样式

Specify background-color as inline style for a row when there's a global style for <td>

在 MediaWiki 页面中,我想为特定的 table 行设置背景颜色。该站点的全局样式表已经具有 <td> 的样式,因此单元格不会像默认情况下那样从 <tr> 继承样式:

td {
  background-color:Salmon;
}
<table border="1">
<tr><td>Salmon</td></tr>
<tr style="background-color:Olive;">
<td>Olive</td>
</tr>
<tr><td>Salmon</td></tr>
</table>

因为这是 MediaWiki,I can only set attributes on table tags。我能以某种方式将 :td{background-color} 样式覆盖为 table 的默认 inherit 样式,而不必将其复制到每个单元格中吗?

根据 https://www.w3.org/TR/css-style-attr/#syntax 判断,这似乎不太可能。

您尝试内联执行此操作是否有特定原因(如果您有一个全局的,您将无法这样做 - 您将不得不使用 CSS)只需给 table 单元格你想要 class 上的不同颜色。由于这将更加具体,它将覆盖这些元素上的全局。

即:

td class="othercolor"

td.othercolor{
   background-color:#some other color
}

这对于您的目的来说可能过于笼统,但正在改变

td {
  background-color:salmon;
}

tr {
  background-color:salmon;
}

仅在 Olive 中显示第二行,在 Salmon 中显示其他行。

如果您无法编辑 CSS,那么答案是否定的 - 您必须将内联样式添加到每个 table 单元格。这就是为什么维基百科有像 {{n/a}} 这样的模板,可以为您添加内联样式。

最好的方法是自己编辑 CSS。如果您不能这样做,但您可以安装扩展(或说服其他人安装它们),您可以尝试 TemplateStyles extension,它允许您将自定义 CSS 添加到各个模板.如果做不到这一点,您可以创建一个像 {{n/a}} 这样的模板,它将样式添加到每个 table 单元格,但可以节省您一些输入。或者您可以硬着头皮将所有内联样式手动添加到每个 table 单元格。

TemplateStyles extension(这是一项正在进行的工作,但已经接近完成;如果您应用所有打开的补丁,可能会正常工作)允许将 CSS 规则附加到 wiki 页面。所以你可以做

table.mytable td {
   background-color: Salmon;
}