我要做的是:
我试图向用户提供一个选项,通过传入一个包含属性的样式对象,如HeadCellColor
、HeadCellBackgroundColor
、BodyCellColor
、BodyCellBackgroundColor
等,为TableHead
和TableBody
中的单元格着色,从而为我的EnhancedTable
组件提供自定义样式。
在TableHead
组件中,我使用了TableSortLabel
,其方式与在此material-ui文档示例中所做的类似:https://material-ui.com/components/tables/#sorting-amp-selection
我希望自定义颜色的文本和箭头图标在悬停和当活动的基础上,由用户提供的道具。
让我们看看TableSortLabel
在不同情况下的颜色:文本的颜色最初是灰色的,没有箭头。当鼠标悬停在上面时,会出现一个灰色箭头,文本变为黑色。单击它时,活动状态被设置,灰色箭头变为黑色,文本永久变为黑色,直到活动状态被移除。
到目前为止我所尝试的:
const useStyles = makeStyles({
tableSortLabel: props => ({
backgroundColor: "blue",
color: props.headCellColor,
fill: props.headCellColor,
"&:hover": {
backgroundColor: "blue"
}
})
});
function EnhancedTableHeadCell(props) {
const { isActive, onHoverSortState, clickHandler, ...otherProps } = props;
const classes = useStyles(props.styles);
return (
<FancyTableCell styles={props.styles} {...otherProps}>
<TableSortLabel
active={isActive}
classes={{
icon: classes.tableSortLabel,
active: classes.tableSortLabel
}}
direction={onHoverSortState}
onClick={clickHandler}
>
{props.children}
</TableSortLabel>
</FancyTableCell>
);
}
这是它在浏览器中的样子:https://i.postimg.cc/fw7w2mrb/c1.jpg
第一个是正常标头,第二个是悬停状态,第三个是单击时(活动状态)。
我们可以观察到,在所有三种情况下(正常、悬停、活动),文本颜色完全不受color
css属性的影响。悬停时,backgroundcolor
只影响图标而不影响文本。但是,我们可以看到backgroundcolor
在文本处于活动状态时会影响文本。所有的事情都按照图标的预期进行。唯一的问题是案文。
我怎么可能做错呢?我怎样才能解决我的问题?
您的问题的解决方案如下:
MuiTableSortLabel: {
root: {
color: textPrimary,
// if you want to have icons visible permanently
// '& $icon': {
// opacity: 1,
// color: primaryMain
// },
"&:hover": {
color: primaryMain,
'&& $icon': {
opacity: 1,
color: primaryMain
},
},
"&$active": {
color: primaryMain,
// && instead of & is a workaround for https://github.com/cssinjs/jss/issues/1045
'&& $icon': {
opacity: 1,
color: primaryMain
},
},
},
}
我通过我的ThemeProvider全局使用这种重新样式,但您当然可以在单个组件中单独使用“WithStyles”HOC(参见示例中的“BootStrapButton”)
对我起作用的是:
const StyledTableSortLabel = withStyles((theme: Theme) =>
createStyles({
root: {
color: 'white',
"&:hover": {
color: 'white',
},
'&$active': {
color: 'white',
},
},
active: {},
icon: {
color: 'inherit !important'
},
})
)(TableSortLabel);
您可以参考以下内容来提高css的特异性:https://material-ui.com/customization/components/#伪类
问题内容: 我们想更改Material-ui自动完成组件上的文本颜色,轮廓和填充。 代码如下: 我们可以通过这样的代码更改TextInput颜色 但是以这种方式应用样式会影响“自动完成”功能(它会失去自动完成功能,其行为类似于普通的TextField)。 我们尝试了许多样式和className选项都无济于事。 感谢任何建议。 问题答案: 这是您尝试过的方法(在样式上可以使用,但破坏了自动完成功能)
问题内容: 如何在Python中将彩色文本输出到终端? 问题答案: 这在某种程度上取决于您所使用的平台。最常见的方法是打印ANSI转义序列。举一个简单的例子,这是Blender构建脚本中的一些python代码: 要使用这样的代码,您可以执行以下操作 或者,使用Python3.6 +: 这将在包括OS X,Linux和Windows的Unix上运行(前提是您使用ANSICON,或者在Windows
我需要定制: 背景未选中 选中文本颜色 文本颜色未选中
我正在使用IText7从html字符串生成pdf。现在,我需要对段落应用自定义颜色和自定义字体或字体系列。 如何使用Itext7实现这一点? 谢谢
我们为应用程序设计了一些自定义控件,如CustomButton、CustomTexView等。这些控件定义应用程序的主题并具有标准大小。现在我们正计划在我们的项目中使用SwiftUI。如何在SwiftUI结构中使用这些自定义控件? 即。 }
跟着这个答案https://stackoverflow.com/a/55113171/324969这个答案https://stackoverflow.com/a/60686826/324969. 如果我按下Ctrl,逗号,在设置中搜索“颜色”,单击settings.json中的