29

我有一个简单的组件这是它的 2 个版本 - 有和没有样式组件:

没有样式化的组件

<div id="container">
    <div id="kid"></div>
</div>


#container {
    width: 100px;
    height: 100px;
}

#kid {
    width: 20px;
    height: 20px;
}

#container:hover #kid{
    background: green;
}

使用样式化组件

const Container = styled.div`
    width: 100px;
    height: 100px;
`;

const Kid = styled.div`
    width: 20px;
    height: 20px;
`;

<Container>
    <Kid />
</Container

如何在上一个示例中实现相同的悬停行为?

4

2 回答 2

51

从 styled-components v2 开始,您可以插入其他样式组件以引用它们自动生成的类名。在你的情况下,你可能想要做这样的事情:

const Container = styled.div`
  &:hover ${Kid} {
    display: none;
  }
`

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

这是从我的回答中复制并粘贴在这里的。

于 2017-07-11T15:43:47.603 回答
3

尝试:

const Container = styled.div`
    width: 100px;
    height: 100px;
    &:hover #kid {
        background: green;
    }
`;

const Kid = styled.div`
    width: 20px;
    height: 20px;
`;

<Container>
    <Kid id="kid" />
</Container>
于 2017-07-11T14:03:34.493 回答