【发布时间】:2018-05-12 00:07:20
【问题描述】:
取下面的HTML结构和CSS
<div class="dropdown" onclick="addHover(this)">
<div class="Rtooltip">More Options</div>
<button class="table-menu dropdown-toggle" type="button" data-toggle="dropdown">
<span class="glyphicon glyphicon-option-horizontal"></span>
</button>
<ul class="dropdown-menu">
<li class="dropdown-submenu">
<a class="test" tabindex="-1" href="#">Add Project Personnel <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">Jared Kushner</a></li>
<li><a tabindex="-1" href="#">Samuel Harris</a></li>
<li class="dropdown-submenu"><a href="#">William Dafoe</a></li>
</ul>
</li>
<li><a tabindex="-1" href="#">Add All Personnel</a></li>
<li><a tabindex="-1" href="#">Add New Person</a></li>
</ul>
</div>
.dropdown {
&:hover {
.Rtooltip {
display: block;
}
}
&.open {
.Rtooltip {
display: none;
}
}
}
// this doesn't work
.table-menu {
&:hover {
.Rtooltip {
display: block;
}
}
}
下拉菜单由父 div 上的 onclick 事件触发。当您将鼠标悬停在 .dropdown 上时,会出现工具提示。当下拉菜单打开时,我使用下拉菜单上的 .open 类隐藏此工具提示。但是,当您单击下拉列表中的某个项目时,.open 类将被删除,并且会在瞬间再次出现工具提示,因为:hover 事件位于下拉列表中。
我想将:hover 事件放在button.table-menu 上,这样它只会在用户将鼠标悬停在按钮上时显示,但是当我移动我的css 以在悬停在该按钮上触发时没有任何反应。看来 button.table-menu 没有传播到顶部。我需要编写什么 SASS 以确保仅当用户将鼠标悬停在 button.table-menu 上时才显示工具提示?
【问题讨论】:
-
你能把
html稍微切换一下吗?.Rtooltip可以定位在button之后吗? -
这并不能解决任何问题。它仍然是相对于容器的。
-
你需要改变一些
css或scss也改变。检查我的答案。