css - 使用 Bootstrap 3 将背景保留在事件的根菜单上

标签 css twitter-bootstrap

我在设置事件根菜单背景时遇到问题。

当我将鼠标悬停在“第 2 级”时,根菜单会变成默认的灰色,我找不到覆盖它所需的选择器。我也遇到了具有不同填充的 2 级和 3 级问题,也找不到相应的选择器。对不起代码墙。

JS-Fiddle:

http://jsfiddle.net/94r36b94/2/

HTML

<nav class="navbar navbar-default" role="navigation">
  <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
    <a class="navbar-brand" href="#">Brand</a>
  </div>

  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse navbar-ex1-collapse">
    <ul class="nav navbar-nav">
      <li class="active"><a href="#">Link</a></li>
      <li><a href="#">Link</a></li>
      <li class="root">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Multi Level <b class="caret"></b></a>
        <ul class="dropdown-menu">
          <li><a href="#">Level 1</a></li>
          <li class="dropdown-submenu"> <a tabindex="-1" href="#">More options</a>
              <ul class="dropdown-menu">
                  <li><a tabindex="-1" href="#">Level 2</a>
                  </li>
                  <li class="dropdown-submenu"> <a href="#">More..</a>
                      <ul class="dropdown-menu">
                          <li><a href="#">Level 3</a>
                          </li>
                          <li><a href="#">Level 3</a>
                          </li>
                          <li class="dropdown-submenu"> <a href="#">More..</a>
                              <ul class="dropdown-menu">
                                  <li><a href="#">Level 4</a>
                                  </li>
                                  <li><a href="#">Level 4</a>
                                  </li>
                                  <li class="dropdown-submenu"> <a href="#">More..</a>
                                      <ul class="dropdown-menu">
                                          <li><a href="#">Level 5</a>
                                          </li>
                                          <li><a href="#">Level 5</a>
                                          </li>
                                      </ul>
                                  </li>

                              </ul>
                          </li>

                      </ul>
                  </li>
                  <li><a href="#">Level 2</a>
                  </li>
                  <li><a href="#">Level 2</a>
                  </li>
              </ul>
          </li>
          <li><a href="#">Level 1</a></li>
        </ul>
      </li>
    </ul>
  </div><!-- /.navbar-collapse -->
</nav>

CSS

/* MENU */
@media (min-width: 768px) {

    body {
        background: #000;
    }

    .dropdown-submenu {
        position: relative;
    }

        .dropdown-submenu > .dropdown-menu {
            top: -2%;
            left: 99.5%;
            margin: 0;
            padding: 0;
        }

.dropdown-menu > li > a {
        color: #fff;
        font-size: 13px;
        font-size: 1.3rem;
        padding: 3px 15px 3px 13px;
    }

    .dropdown-menu {
        border: 0;
    }

    .nav > li > a {
        padding: 7px 25px;
    }

    .navbar {
        border: 0;
        min-height: inherit;
        margin: 0 auto;
    }

    .navbar-default .navbar-nav > li > a {
        color: #fff;
    }

    .navbar-default .navbar-nav .open .dropdown-menu > li > a {
        font-size: 13px;
        font-size: 1.3rem;
        color: #000;
    }

    .navbar-default .navbar-nav > li:hover {
        background: #fff;
    }

        .navbar-default .navbar-nav > li:hover > a {
            color: #fff;
        }

    .navbar-default .navbar-toggle .icon-bar {
        background-color: rgb(15, 52, 66);
        background-color: rgba(15, 52, 66, 0.75);
    }

    .dropdown-menu {
        border-radius: 0;
    }

    .dropdown-submenu:active > .dropdown-menu,
    .dropdown-submenu:hover > .dropdown-menu {
        display: block;
    }

    .dropdown-submenu > a:after {
        display: block;
        content: " ";
        float: right;
        width: 0;
        height: 0;
        border-color: transparent;
        border-style: solid;
        border-width: 5px 0 5px 5px;
        border-left-color: #fff;
        margin-top: 5px;
        margin-right: 0;
    }

    .dropdown-submenu:active > a:after {
        border-left-color: #fff;
    }

    .dropdown-submenu.pull-left {
        float: none;
    }

        .dropdown-submenu.pull-left > .dropdown-menu {
            left: -100%;
            margin-left: 10px;
        }

    .rootmenu:hover > .dropdown-menu {
        display: block;
    }

    .navbar-default .navbar-nav > li > a:hover, 
    .navbar-default .navbar-nav > li > a:focus {
        background-color: rgb(15, 52, 66);
        background-color: rgba(15, 52, 66, 0.75);
    }

    .navbar-nav > li:hover > ul.dropdown-menu,
    .navbar-nav > li:hover > ul.dropdown-menu > li.dropdown-submenu:hover > ul.dropdown-menu {
        background-color: rgb(15, 52, 66);
        background-color: rgba(15, 52, 66, 0.75);
    }

    .navbar-nav > li:hover ul li a:hover,
    .navbar-nav > li.active ul li a:hover {
        background-color: rgb(125, 178, 181);
        background-color: rgba(125, 178, 181, 0.75);
        border-color: #fff;
        color: #fff;
    }

    .navbar-default .navbar-nav > li.active ul li a {
    }
}

@media (max-width: 779px) {

    body {
        background: #000;
    }

    .navbar {
        min-height: 20px;
        margin-bottom: 0;
    }

    .nav-link {
        width: 90%;
        float: left;
    }

    .navbar-collapse {
        box-shadow: none;
    }

    .navbar-default .navbar-toggle .icon-bar {
        background-color: #fff;
    }

    .nav-toggle {
        width: 10%;
        float: right;
    }

    .navbar-default .navbar-collapse {
        border: 0;
    }

    .navbar-default .navbar-toggle {
        padding: 6px;
        border-color: #fff;
    }

    .navbar-default .navbar-nav .open .dropdown-menu > li > a {
        font-size: 13px;
        font-size: 1.3rem;
        color: #fff;
    }

    .navbar-nav {
        margin-left: 0;
        margin-right: 0;
    }

        .navbar-nav > li a {
            font-size: 13px;
            font-size: 1.3rem;
            color: #fff;
        }

        .navbar-nav > li:hover ul li a:hover,
        .navbar-nav > li.active ul li a:hover {
            color: #fff;
        }

    .navbar-default .navbar-nav > li > a:hover,
    .navbar-default .navbar-nav > li > a:focus {
        color: #fff;
    }

    .navbar-default .navbar-nav > .active > a,
    .navbar-default .navbar-nav > .active > a:hover,
    .navbar-default .navbar-nav > .active > a:focus {
        font-size: 13px;
        font-size: 1.3rem;
    }

    .navbar-default .navbar-nav > .open > a,
    .navbar-default .navbar-nav > .open > a:hover,
    .navbar-default .navbar-nav > .open > a:focus {
        font-size: 13px;
        font-size: 1.3rem;
        color: #fff;
        background-color: rgba(15, 52, 66, 0.75);
    }

    .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
        background-color: rgba(15, 52, 66, 0.75);
        color: #fff;
    }

    .dropdown-link-container {
        padding: 5px 10px 5px 25px;
    }

        .dropdown-link-container .glyphicon {
            position: relative;
            right: 14px;
        }

    .navbar-default ul li ul li ul {
        margin-left: 10px;
    }
}

.navbar-default {
    border: 0;
    background: none;
}

.nav li {
}

.navbar-default ul li ul li {
    border-right: 0;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
    background-color: rgb(15, 52, 66);
    background-color: rgba(15, 52, 66, 0.75);
}

.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
    background-color: #7db2b5;
}

.navbar-default .navbar-toggle {
    border-color: none;
}

.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
    padding: 0;
}

.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus,
.navbar-default .navbar-nav > .active > span > a {
    color: #fff;
    background: rgb(15, 52, 66);
    background: rgba(15, 52, 66, 0.75);
}

/* END MENU */

最佳答案

我需要添加这个 javascript 来添加一个类“open”。然后进行设计。

<script type="text/javascript">
    $(function () {
        $(".dropdown-submenu a").hover(function (e) {
            $(this).closest('li').toggleClass('open')
            e.stopPropagation();
        })
    });
</script>

关于css - 使用 Bootstrap 3 将背景保留在事件的根菜单上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26240625/

相关文章:

html - 全宽导航栏 Logo Bootstrap

javascript - 如何计算两个 Bootstrap 日期选择器之间的差异?

javascript - jQuery,获取each() img 尺寸适用于each() DIV?

html - 更改 radio 选择

html - 带有淡入淡出和高度的下拉菜单

php - 可以在 BODY 标签之后放置一个隐藏的 DIV 以向搜索引擎显示文本吗?

javascript - Bootstrap Modal 关闭后 CSS Transition 中断

javascript - Bootstrap 3 表单向导

css - 强制选择足够宽以显示所选元素

javascript - 并排对齐 div,没有空白的黑色空间