javascript - 如何强制悬停选择器不出现在特定的 div 上

标签 javascript html css

如何将列表中的第一个元素排除在 :hover 选择器的目标之外?

CSS:

.navbar .navbar-nav > li :hover { 
  color:red !important;
}

HTML:

<li>
@Html.ActionLink("Login", "Login", "Home", new { area = "" }, new 
{@class ="navbar-item" })
</li>

到目前为止我尝试了什么:

document.getElementsByClassName("navbar-item")[0].onmouseover = function () {
  mouseOver()
};

function mouseOver() {
  document.getElementsByClassName("navbar-item")[0].style.color="blue !important"
}

最佳答案

您不需要为此使用 JavaScript/jQuery。只需像这样使用 :nth-child css 选择器:

/* target all hovered li elements except the first one */
.navbar .navbar-nav > li:nth-child(n+2) a:hover { 
  color: red;
} 
<nav class="navbar">
  <ul class="navbar-nav">
    <li>
      <a class="nav-link" href="#">Link 1</a>
    </li>
    <li>
      <a class="nav-link" href="#">Link 2</a>
    </li>
    <li>
      <a class="nav-link" href="#">Link 3</a>
    </li>
  </ul>
</nav>


或者,如果您不使用默认的 Bootstrap anchor 链接,而只想定位 li 元素本身,只需链接 :nth-child 选择器和 :hover 像这样的选择器:

/* target all hovered li elements except the first one */
.navbar .navbar-nav > li:nth-child(n+2):hover { 
  color: red;
}
<nav class="navbar">
  <ul class="navbar-nav">
    <li>
      Link 1
    </li>
    <li>
      Link 2
    </li>
    <li>
      Link 3
    </li>
  </ul>
</nav>

关于javascript - 如何强制悬停选择器不出现在特定的 div 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54715683/

相关文章:

css - 创建不寻常的 CSS3 形状来替换图像

像对象 .map() 这样的 JavaScript 数组

javascript - 使用 JavaScript 的范围选择器

javascript - 如何检查网页中的文本是否有粗体

css - 是否可以让浏览器搜索 CSS 生成的内容?

css - 内联div不起作用

javascript - 功能 setSelectionRange 在 Android 浏览器中不起作用

javascript - 按照 Flux 模式以干净的方式将数据从 React.js Store 传递到组件

javascript - 翻转 div 的内容在 Firefox 上有效,但在 Chrome 中无效

html - 固定的 div 但在特定容器内