【问题标题】:Dropdown Hover State to stay active while hovering over child (text)下拉悬停状态以在悬停在子项上时保持活动状态(文本)
【发布时间】:2016-08-28 07:42:58
【问题描述】:

当我将光标移动到下拉菜单中的子项时,我试图保持文本按钮的悬停 CSS 状态,但似乎找不到正确的解决方案?

当我将光标向下移动到子项上时,除了父项变回正常状态外,一切都很好。

CSS

.btn-primary {
  color: #585a5c;
  background-color: #ffffff;
  border-color: #ffffff;
  font-family:engravers;
  font-size:13px;
  text-align:center;
  text-transform: uppercase;
  letter-spacing: 4px;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
  color: #585a5c;
  background-color: #ffffff;
  border-color: #ffffff;
  font-family:timesitalic;
  font-size:15px;
  text-transform: capitalize;
}

HTML

<div class="dropdown">
    <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Gallery Of Images
    <!--<span class="caret"></span>--></button>
    <ul class="dropdown-menu">
        <li><a href="gallery/1.html">ONE</a></li>
        <li><a href="gallery/2.html">TWO</a></li>
    </ul>
</div>

【问题讨论】:

  • jsfiddle.net/2m0hxnkn。您是否包括 jQuery 和 Bootstrap javascript 文件?还是您指的是应该是白色的背景颜色变成深蓝色?
  • 这里一切正常,li itens(子元素)保持风格。
  • 是的,包含 jQuery。将鼠标悬停在子元素
  • .
  • 上时,我试图保持字体系列和大小相同
  • 这里是我的项目的链接:brandonbenscoter.com/LAI 当鼠标悬停在其下方的子项目上时,我试图保持“图片库”父按钮为斜体。
  • 标签: css hover dropdown


    【解决方案1】:

    我认为您只需要更改悬停事件的选择器即可。如果我正确理解你想要做什么,你需要改变这个:

    .btn-primary:hover,
    .btn-primary:focus,
    .btn-primary:active,
    .btn-primary.active,
    .open .dropdown-toggle.btn-primary {
      color: #585a5c;
      background-color: #ffffff;
      border-color: #ffffff;
      font-family:timesitalic;
      font-size:15px;
      text-transform: capitalize;
    }
    

    到这里:

    .dropdown:hover .dropdown-toggle.btn-primary {
      color: #585a5c;
      background-color: #ffffff;
      border-color: #ffffff;
      font-family:timesitalic;
      font-size:15px;
      text-transform: capitalize;
    }
    

    您遇到的问题是,当您将鼠标悬停在该特定元素上时,您只是将上述样式集应用于 .btn-primary 元素。这意味着,只要您将光标从主导航项移到下方的导航菜单上,.btn-primary:hover 就不再为真,并且上面的样式停止生效。

    要解决这个问题,简单的解决方案是在整个下拉列表中指定悬停事件,即父 .dropdown 元素也包括 .dropdown-menu。在此元素上使用悬停事件意味着当您从悬停在 .btn-primary 上切换到悬停在其下方的 .dropdown-menu 导航上时,.dropdown:hover 仍然为真,因为您仍然悬停在 .dropdown 的子元素上。

    剩下的就是确保您的样式影响正确的元素,因此在悬停选择器之后定位.dropdown-toggle.btn-primary

    这就是你要找的吗?

    【讨论】:

    • 太棒了!非常感谢,我有一种预感,我想太多了,应该少尝试而不是多尝试。非常感谢!
    • 没问题,这是我以前必须做的事情,像上面这样的事情通常是最简单和最优雅的解决方案。很高兴这是你想要的:)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签