CSS-如何在i标签悬停时显示面板

问题描述 投票:0回答:2

当用户将鼠标悬停在购物车图标上时,我想打开弹出式面板,例如this example from W3Schools

这与SO的收件箱类似:

Screenshot

我试过this code,但看起来我错过了一些东西。

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
<i class="fa fa-shopping-cart w3-margin-right dropdown" onmouseover="javascript:void(0)"></i>
<div class="dropdown-content"><p>This is a test</p></div>
<i class="fa fa-search"></i>
javascript css html5
2个回答
-1
投票

你需要一个+符号,因为它是一个兄弟元素。

试图添加CSS:

.dropdown:hover + .dropdown-content {
    display: block;
}

工作小提琴:https://jsfiddle.net/jennifergoncalves/zy0m1w32/2/

(使用“Hello”,因为我没有加载字体真棒)

参考:https://www.w3schools.com/css/css_combinators.asp

空格用于父/子关系。

更新:在聊天中发言后,问题中提出的HTML与实际代码不同。

实际HTML:

<p class="w3-right">
    <i class="fa fa-shopping-cart w3-margin-right dropdown" onmouseover="javascript:void(0)"></i>
</p>
<div class="dropdown-content">
    <p> This is a test</p>
</div>

兄弟选择器没有工作,因为“下拉”和“下拉内容”实际上不是兄弟姐妹。将“下拉”类添加到“p”标记似乎可以解决问题。


0
投票

你也可以使用'+'或'〜',如下所示:

.dropdown:hover + .dropdown-content {
    //your css code
}
.dropdown:hover ~ .dropdown-content {
    //your css code
}
© www.soinside.com 2019 - 2024. All rights reserved.