html - CSS:为什么不能使用img:hover显示下拉菜单

标签 html css

我想执行一个操作,当我将鼠标悬停在图像上时,将显示下拉菜单。

下面的代码工作正常。

HTML、CSS:

.menu {
  position: relative;
  display: inline-block;
}
.menu .dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  margin: 0;
  display: none;
}
.menu:hover .dropdown-menu {
  display: block;
}
<div class="menu">
  <img src="http://sharpinsurance.ca/images/menu-collapse.png" id="menu-icon" alt="menu-icon" />
  <ul class="dropdown-menu">
    <li><a href="#home">Account</a>
    </li>
  </ul>
</div>

我的问题是为什么我无法使用 #menu-icon:hover 执行该操作?

#menu-icon:hover .dropdown-menu {
    display:block;  
}

最佳答案

基于此结构:

<div class="menu">      
<img src="icon.jpg" id="menu-icon" alt="menu-icon"></img>
<ul class="dropdown-menu">
<li><a href="#home">Account</a></li>   
</ul>
</div>

您使用的选择器/组合器不正确,应该是:

#menu-icon:hover + .dropdown-menu {
display:block;  
}

您使用的 .menu-icon.dropdown-menu 之间的空格假定菜单是图像的子级,但事实并非如此

菜单是下一个同级菜单,并使用 + 组合符进行选择。

The 30 CSS Selectors You Must Memorize

关于html - CSS:为什么不能使用img:hover显示下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40309041/

相关文章:

html - 固定布局上的内容空白过多

animation - css3 动画 : div is not correct size

CSS3-如何设置所有屏幕尺寸的两个区域之间的距离相同

javascript - 如果 struts/自定义标签位于 javascript 方法内,它们何时得到解析

javascript - 为什么类型为 ="number"的输入不显示对其绑定(bind)值的更新?

javascript - 如何保持title属性值点击后可见?

android - Android 浏览器中列表项后的行

javascript - 如何让 Shadow Dom 与 LIst 一起工作?

javascript - 更改文本区域中的 iframe 值

javascript - 将按钮设置为 'active' 在 AngularJS 中不起作用