悬停时定位另一个样式的组件不起作用

Posted

技术标签:

【中文标题】悬停时定位另一个样式的组件不起作用【英文标题】:Target another styled component on hover not working 【发布时间】:2022-01-14 05:54:45 【问题描述】:

在样式化组件中悬停时需要帮助。如果悬停在组件中并影响该组件,则该组件有效。但是如果悬停在组件中并影响另一个组件,则无法正常工作。

DropDownContent 不显示在 DropDownLi:hover 上。

export const DropDownLi = styled(StyledLi)`
  display: inline-block;

  &:hover 
    color: red;
  
`;

export const DropDownContent = styled.div`
  display: none;
  position: absolute;
  min-width: 160px;
  z-index: 1;

  $DropDownLi:hover & 
    display: block;
   
  /* not show on hover */
`;

在下一个示例中不起作用。

export const DropDownLi = styled(StyledLi)`
  display: inline-block;

  &:hover $DropDownContent 
    color: red;
  
`;
<StyledUl>
  <DropDownLi>$ Currency</DropDownLi> 
  <DropDownContent>dvsdv</DropDownContent>
  <DropDownLi>English</DropDownLi>
  <StyledLi>Login</StyledLi>
</StyledUl>

【问题讨论】:

【参考方案1】:

尝试删除&amp;

export const DropDownContent = styled.div`
  display: none;
  position: absolute;
  min-width: 160px;
  z-index: 1;

  $DropDownLi:hover 
    display: block;
   
  /* not show on hover */
`;

【讨论】:

感谢@Georgy 的帮助,但如果没有&amp;,它将无法正常工作。 啊,我明白了,如果您将鼠标悬停在子组件上,您想显示父组件,对吧?我不确定你是否可以使用 CSS 来做到这一点。级联工作从顶层到底层。 我更新了问题,所以你可以看到。我想在悬停另一个子组件 (DropDownLi) 时显示子组件 (DropDownContent)。我需要带有样式组件的下拉菜单。谢谢你的帮助。【参考方案2】:

我找到了解决这个问题的方法。有效的代码如下。

<StyledUl>
  <DropDownLi>
    $ Currency
    <DropDownContent>dvsdv</DropDownContent>
  </DropDownLi>
</StyledUl>
export const StyledLi = styled.li`
  float: left;
  cursor: pointer;
`;

export const DropDownContent = styled.div`
  display: none;
  position: absolute;
  min-width: 160px;
  z-index: 1;
`;
export const DropDownLi = styled(StyledLi)`
  display: inline-block;
`;

export const StyledUl = styled.ul`
  list-style-type: none;
  margin: 0;
  overflow: hidden;
  color: black;

  $DropDownLi:hover > $DropDownContent 
    display: block;
  
`;

【讨论】:

以上是关于悬停时定位另一个样式的组件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

边框样式在顺风悬停时不起作用

选择另一个元素时CSS悬停不起作用[重复]

悬停链接时,css 声明不起作用

C# WebBrowser CSS 悬停样式不起作用(尽管配置了浏览器仿真)

如果在表格单元格中,CSS悬停更改其他文本/类的样式不起作用

在 React 样式组件上使用 'ref' 不起作用