当前位置: 首页 > 知识库问答 >
问题:

在悬停状态下瞄准另一个样式组件

傅朝
2023-03-14

处理样式组件中悬停的最佳方法是什么?我有一个包装元素,当悬停时会显示一个按钮。

我可以在组件上实现一些状态,并在悬停状态下切换属性,但我想知道是否有更好的方法使用样式化的cmponents来实现这一点。

类似于以下内容的内容不起作用,但非常理想:

const Wrapper = styled.div`
  border-radius: 0.25rem;
  overflow: hidden;
  box-shadow: 0 3px 10px -3px rgba(0, 0, 0, 0.25);
  &:not(:last-child) {
    margin-bottom: 2rem;
  }
  &:hover {
    .button {
      display: none;
    }
  }
`

共有3个答案

白泽语
2023-03-14

我的解决办法是

const Content = styled.div`
  &:hover + ${ImgPortal} {
    &:after {
      opacity: 1;
    }
  }
`;
上官凯歌
2023-03-14

与mxstbr的答案类似,您也可以使用内插来引用父组件。我喜欢这个路由,因为它封装了组件的样式,比在父组件中引用子组件好一点。

const Button = styled.button`
  ${Wrapper}:hover & {
    display: none;
  }
`;

我不能告诉你这个特性是什么时候引入的,但是从v3开始就可以使用了。

相关链接:https://www.styled-components.com/docs/advanced#referring-连接到其他组件

养鸿运
2023-03-14

对于样式化组件v2,您可以插入其他样式化组件以引用其自动生成的类名。在您的情况下,您可能希望执行以下操作:

const Wrapper = styled.div`
  &:hover ${Button} {
    display: none;
  }
`

有关更多信息,请参阅文档!

组件的顺序很重要。只有在包装器前面/上面定义了按钮时,它才会工作。

如果您使用的是v1,并且需要执行此操作,则可以使用自定义类名来解决此问题:

const Wrapper = styled.div`
  &:hover .my__unique__button__class-asdf123 {
    display: none;
  }
`

<Wrapper>
  <Button className="my__unique__button__class-asdf123" />
</Wrapper>

由于v2是从v1到v1的直接升级,我建议进行更新,但如果卡中没有更新,这是一个很好的解决方法

 类似资料:
  • 问题内容: 处理样式化组件中悬停的最佳方法是什么?我有一个包装元素,将鼠标悬停时会显示一个按钮。 我可以在组件上实现某些状态并在悬停时切换属性,但想知道是否有更好的方法可以使用styled-cmponents来做到这一点。 像下面这样的东西不起作用,但是很理想: 问题答案: 从样式组件v2开始,您可以插值其他样式组件以引用其自动生成的类名。在您的情况下,您可能需要执行以下操作: 有关更多信息,请参

  • 即使在a:hover的末尾添加也不起作用。

  • 问题内容: 当我将鼠标悬停在ID为“ a”的div或类上时,是否可以更改ID为“ b”的div或类的背景色? 问题答案: 是的,您可以执行此操作,但前提是在HTML之后。 如果紧随其后: 这是使用相邻的同级组合器()。 如果和之间还有其他元素,则可以使用以下元素: 这是使用通用的同级组合器()。 双方并在所有现代浏览器和IE7 +工作 如果是的后代,则可以简单地使用。 替代方案:您可以使用纯CSS

  • 在按钮悬停我想做的改变:之前的内容太,我找不到一个答案在官方留档我想知道这是可能的。 这里是样式组件:

  • 问题内容: 我已经看过其他几个问题,但似乎无法弄清楚它们中的任何一个,所以这是我的问题,我想要一个div或span,当您将鼠标悬停在它上面时,就会出现一个区域,就像是一滴水下。 例如我有一个div,我想将鼠标悬停在上面,并让它显示有关我悬停的项目的一些信息 但这似乎不起作用,我不知道为什么…,如果有办法在CSS中做到这一点,我想知道,但是我想要任何和所有建议。 问题答案: 仅当隐藏的div是用于悬

  • 我正在创建一个包含样式化组件和React的菜单,并希望图标的颜色在悬停时更改,但我需要它在图标的父项悬停时更改,以便将文本悬停在图标旁边也会激活图标的悬停样式。下面是我用来接近的代码: 在以后的组件中引用另一个样式化组件的方式非常聪明,但在本例中,当它创建悬停规则时,它创建时不考虑不同类型的父容器($isactive===true或$isactive==false),因此所有链接容器都有两个悬停规