material-ui table: 如何对 table 元素进行样式更改

material-ui table: how to make style changes to table elements

我正在使用 'material-ui' 并尝试让 table 元素在元素具有特定值时更改颜色。下面是我试过的代码,如果单元格值为 "Out of Zone",背景应该变红。 table 渲染正常,但是切换颜色变化不起作用,怎么会(或者我的方法全错了)?

function renderRowColumn(row, column) {
    if (row.status == "Out of Zone") {
        return (
            <TableRowColumn className="ae-zone">
                {row[column.name]}
            </TableRowColumn>
        )
    }
    return (
        <TableRowColumn>
            {row[column.name]}
        </TableRowColumn>
    )
}

在style.css中:

.ae-zone {
    background-color: '#e57373';
    font: "white";
}

您在 css 选择器上的特异性不够高。渲染的 TD 元素有一个内联样式,其中背景 属性 被继承,它覆盖了你的 class 样式。

有没有什么理由,既然你已经把逻辑分开了,你不只是为这样的事情使用内联样式。

<TableRowColumn style={{backgroundColor:'red', color: 'white',}}>{row[column.name]}</TableRowColumn>

这绝对工作得很好,我测试了它。

您的另一个选择是将 !important 添加到您的 css。

td.ae-zone {
  background-color: '#e57373' !important;
  color: "white" !important;
}

我想如果我必须选择,我会推荐第一个,因为它更干净。

不要在 css:

中的颜色值周围加上引号
.ae-zone {
    background-color: #e57373;
    color: white;
}

此外,它是 color: white,而不是 font: white

大多数时候 Table 采用默认样式,因此如果未应用样式,请尝试将 !important 附加到样式。这对我有用。

.ae-zone {
    background-color: '#e57373' !important;
    color:red;
}