html - 如何仅对一级菜单应用样式

标签 html css

我这里有菜单结构,我想做的是,当我单击父级元素或任何子菜单项时,类 active 将被添加到菜单中被点击。

我只想更改父菜单项的颜色,而不是子菜单项的颜色,我该怎么做。现在正在发生的事情是我已经应用了 css,但它被应用于父菜单和子菜单项。

.center-in-menu {
  &:not(div.we-mega-menu-submenu) {
    .we-mega-menu-li.active {
      a {
        color: blue !important;
      }
    }
  }
}
<ul class="nav-tabs center-in-menu">
<li class="we-mega-menu-li dropdown-menu">
<a href="#">Menu 1</a>
<div class="we-mega-menu-submenu">
  <ul class="nav-tabs">
    <li class="we-mega-menu-li"><a href="#">submenu1</a></li>
    <li class="we-mega-menu-li dropdown-menu"><a href="#">submenu2</a></li>
    <div class="we-mega-menu-submenu">
      <ul class="nav-tabs">
        <li class="we-mega-menu-li"><a href="#">submenu1</a></li>
        <li class="we-mega-menu-li"><a href="#">submenu1</a></li>
        <li class="we-mega-menu-li"><a href="#">submenu1</a></li>
        <li class="we-mega-menu-li"><a href="#">submenu1</a></li>
        <li class="we-mega-menu-li"><a href="#">submenu1</a></li>
      </ul>
    </div>
    <li class="we-mega-menu-li"><a href="#">submenu3</a></li>
    <li class="we-mega-menu-li"><a href="#">submenu4</a></li>
    <li class="we-mega-menu-li"><a href="#">submenu5</a></li>
  </ul>
</div>
<li class="we-mega-menu-li"><a href="#">Menu 2</a></li>
<li class="we-mega-menu-li"><a href="#">Menu 3</a></li>
<li class="we-mega-menu-li dropdown-menu">
  <a href="3">Menu 4</a>
  <div class="we-mega-menu-submenu">
    <ul class="nav-tabs">
      <li class="we-mega-menu-li"><a href="#">submenu1</a></li>
      <li class="we-mega-menu-li active dropdown-menu"><a href="#">submenu2</a></li>
      <div class="we-mega-menu-submenu">
        <ul class="nav-tabs">
          <li class="we-mega-menu-li active"><a href="#">submenu1</a></li>
          <li class="we-mega-menu-li"><a href="#">submenu2</a></li>
          <li class="we-mega-menu-li"><a href="#">submenu3</a></li>
          <li class="we-mega-menu-li"><a href="#">submenu4</a></li>
          <li class="we-mega-menu-li"><a href="#">submenu5</a></li>
        </ul>
      </div>
      <li class="we-mega-menu-li"><a href="#">submenu3</a></li>
      <li class="we-mega-menu-li"><a href="#">submenu4</a></li>
      <li class="we-mega-menu-li"><a href="#">submenu5</a></li>
    </ul>
  </div>
</li>
<li class="we-mega-menu-li"><a href="#">Menu 5</a></li>
</ul>

例子在这里 https://codepen.io/Chandanay/pen/YzKJNEE

最佳答案

使用 > 仅将样式应用于给定选择器内的元素,而无需进一步深入。

这是一个例子:

div.wrapper > a {  /* only applied to direct children */
    font-weight: bold;
}

div.inner a {
    font-style: italic;
}

<div class="wrapper">
    <a>1st Level (Bold)</a>
    <div class="inner">
        <a>2nd Level (Italic)</a>
    </div>
    <div class="noclass">
        <a>2nd Level (No style)</a>
    </div>
</div>

关于html - 如何仅对一级菜单应用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58112799/

相关文章:

html - 通过类名而不是 id 链接到文档?

html - 文本位于移动 View 的第一部分下方

html - 一行中的一组字段

html - 网格内的 Bootstrap 3 内联导航栏

php - 在 div、iframe、frame 中以原始高度显示跨域页面?

javascript - 切换页面时保持与 Socket.io 的连接

javascript - 如何在单击 <a> 时模拟单击 LinkBut​​ton?

css - 为什么具有 z-index 值的元素不能覆盖其子元素?

html - 如何使 HTML 页面在所有显示器上都显示相同?

html - Bootstrap 内联显示多个表单