【问题标题】:Change styling on hover semantic-ui-react components更改悬停语义-ui-react 组件的样式
【发布时间】:2018-07-28 06:58:22
【问题描述】:

如果我为某些组件设置了类名,例如

<Segment className="Change" color='blue' inverted></Segment>

在我的 css 中我使用

.Change:hover{
  background-color: black; //or any other change on hover
}

悬停时不会覆盖任何内容。

我还注意到有许多其他组件拒绝我的更改,似乎是随机的。一个语义组件会让我改变宽度,下一个不会。是同一个问题的原因吗?如何覆盖悬停时的颜色?

【问题讨论】:

    标签: css reactjs semantic-ui semantic-ui-react


    【解决方案1】:

    查看 Segment Component (github) 的源代码后,我发现它有两个默认类:segmentui。此外,您使用了两个道具color=blueinverted。所以我建议使用以下代码。

    .ui.segment.blue.inverted.Change:hover {
      background-color: black !important;
    }
    

    Working DEMO

    【讨论】:

    • 该死,我已经尝试了一些类似的事情,所以认为这可能会起作用,但这是不行的。如此简单的更改在 div 上很容易起作用,这让我觉得在这种情况下我不应该使用语义。
    • 我用 !important 编辑了我的答案。你也试过了吗?
    • 您的演示帮了大忙!警告:我不能为此使用语义 ui 的反应版本。我可以将它用于文本更改,但不能用于背景颜色。 (用一个简单的 .Change:hover )我投票给你的结果作为答案,因为虽然它不能解决 React 版本问题,而且我必须使用正常的语义代码,但它是一种可行的解决方法!谢谢。
    • 我已经在使用了!important,是的。切换到
      并远离语义反应组件。
    【解决方案2】:

    选择任何颜色语义-ui 提供例如:

    <Form>
          <Form.Input label="Email" type="email" />
          <Form.Input label="Password" type="password" />
          <Button color="teal" type="submit">
            Sign In
          </Button>
    </Form>
    

    您的按钮如下所示:

    你可以在 Button 组件中添加倒置的 props 来响应语义 UI 提供

    <Form>
          <Form.Input label="Email" type="email" />
          <Form.Input label="Password" type="password" />
          <Button inverted color="teal" type="submit">
            Sign In
          </Button>
    </Form>
    

    您的组件如下所示:

    悬停时返回与倒置相反的基本样式

    通过反应语义 ui 使用样式化组件

    我建议你使用 styled-components 来覆盖语义 UI 组件样式

    import { Tab, Form, Button, Grid, Icon } from "semantic-ui-react";
    import styled from "styled-components";
    
    const Mybutton = styled(Button)`
     &:hover {
        color: #fff !important;
     }
    `;
    

    接下来使用你的新样式组件而不是语义用户界面

    <Mybutton inverted color="teal" type="submit">
       Sign In
    </Mybutton>
    

    【讨论】:

      【解决方案3】:

      因为您没有提供更多代码,所以很难猜出您尝试更改的压倒一切的样式。尝试在此样式中添加!importanant 规则。

      .Change:hover {
        background-color: black !importanant;
      }
      

      为了避免!important,这并不总是一个好的解决方案,添加一个更具体的CSS选择器,例如Segment.Change:hover

      更新: 尝试从模板中删除 color='blue' 并检查是否可以使用和不使用 !important 规则。

      【讨论】:

      • 我已经尝试了重要的,不幸的是不起作用。显示的代码就是页面上的全部内容。其余的将是导入语句和反应渲染。只是试图从语义-ui-react 更改 样式的颜色(或在悬停时执行任何操作)。
      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 2017-09-16
      • 2021-01-24
      • 1970-01-01
      相关资源
      最近更新 更多