材质 UI 已选择选项卡样式

Posted

技术标签:

【中文标题】材质 UI 已选择选项卡样式【英文标题】:Material UI selected Tab styling 【发布时间】:2019-04-27 16:24:57 【问题描述】:

我正在尝试通过样式化组件将样式应用于 Material UI Tab 组件,当它具有选定的 prop 值为 true 时,但我没有任何运气。根据 Material UI API documentation,当所选道具具有真值时,Tab 组件将获得一个 css 类,它确实如此,但我试图应用于该 css 类的样式实际上都不是已申请。

标签组件:

const StyledTab = styled(( ...props ) => (
  <Tab ...props classes= selected: "selected"  />
))`
  & .selected 
    background-color: yellow;
  
`;

应用:

function StyledComponentsTab() 
  return (
    <div>
      <StyledTab label="test" selected />
    </div>
  );

codesandbox example

【问题讨论】:

【参考方案1】:

样式未应用,因为您需要通过 !important 覆盖库的样式。它应该看起来像 background-color: yellow !important;

此外,您的 .selected css 规则不适用于组件,因为组件上的 selected 文本是 attribute 而不是 class.selected 规则适用于带有className="selected"html 元素。

这是应用了样式的代码示例:https://codesandbox.io/s/72o992lv36

【讨论】:

是的,我意识到这是一个属性,但是您可以在定义组件时指定所选类的名称。如果您检查选项卡元素,它将具有“已选择”的类名。此外,!important 添加对类样式没有影响。 在这种情况下,您可以使用&amp;.selected background-color: yellow; 并根据需要应用样式。不同之处在于 &amp; .selected 适用于 &lt;StyledTab/&gt; 实现中的子元素,而不是您想要的***元素。 乐于助人:)

以上是关于材质 UI 已选择选项卡样式的主要内容,如果未能解决你的问题,请参考以下文章

材质 ui 选项卡容器的动态高度

所选材质 UI 选项卡的颜色与其他选项卡不同

省略未添加到材质 UI 选项卡文本中

在材质 UI 中动态更改选项卡内容

如何使材质 UI 选项卡标签离开?默认情况下它的中心对齐

WPF 选项卡控件样式