我想知道是否有可能有多个连接器的颜色与不同的一个在每一步。因此,第一个连接器将是蓝色的,之后的连接器将是绿色,然后是黄色,然后是红色,所有这些都保持先前的颜色相同。最接近的已经得到改变所有先前的颜色到相同的颜色。有没有办法让以前的颜色保持不变?
我链接的示例只有一种颜色的连接符
Example of Stepper with Connector only one color
我想知道是否有可能有多个连接器的颜色与不同的一个在每一步。因此,第一个连接器将是蓝色的,之后的连接器将是绿色,然后是黄色,然后是红色,所有这些都保持先前的颜色相同。最接近的已经得到改变所有先前的颜色到相同的颜色。有没有办法让以前的颜色保持不变?
我链接的示例只有一种颜色的连接符
Example of Stepper with Connector only one color
2条答案
按热度按时间kupeojn61#
这个答案展示了如何改变单个
StepIcon
的颜色假设在组件外部有一个函数呈现
Stepper
,该函数返回一个包含步骤标签及其对应图标颜色的数组:你可以通过
makeStyles
函数使用material-ui的Hook API为每个标签图标生成类(如果你使用的是类组件,你可能想看看withStyles
函数):并将生成的钩子添加到组件中:
const iconClasses = useIconStyles();
在渲染步进器时,您可以像这样使用生成的类:
下面是一个工作示例:
hof1towb2#
如果您仔细查看
Stepper
组件的渲染输出,您会注意到StepLabel
和StepConnector
是兄弟组件。这意味着您可以使用CSS:nth-child()
伪类选择特定的连接器。如果你想在第一步的标签后选择连接器,你可以使用选择器:nth-child(2)
。对于第二步标签之后的连接器,其应为:nth-child(4)
。如果你有一个像这样的步骤标签数组:
你可以将这个数组传递给一个由
makeStyles
函数创建的material-ui样式钩子,并动态生成所有不同的CSS选择器来为每个连接器设置样式:现在在组件中使用生成的样式钩子:
const connectorClasses = useConnectorStyles(stepLabels);
并将connector
属性提供给Stepper
组件:下面是一个工作示例: