css - 导航栏折叠下拉菜单重叠文本

标签 css twitter-bootstrap navbar breakpoints dropdown

我正在使用 bootstrap 并更改了导航栏断点,因为我们在那里有很多元素。为了减少这种情况,我使用了几个下拉菜单,它们在桌面和移动设备上都能完美运行,但平板电脑在打开下拉菜单时会出现问题。 在新断点 (991px) 和默认断点 (768px) 之间,下拉菜单不会像在移动设备中那样将内容推送到其下方,而是像在桌面设备中那样将其重叠。

这是我用来更改断点的 css,可能遗漏了一些东西但不知道是什么 :(

@media (max-width: 991px) {
  .navbar-header {
      float: none;
  }
  .navbar-left,.navbar-right {
      float: none !important;
  }
  .navbar-toggle {
      display: block;
  }
  .navbar-collapse {
      border-top: 1px solid transparent;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
  }
  .navbar-fixed-top {
      top: 0;
      border-width: 0 0 1px;
  }
  .navbar-collapse.collapse {
      display: none!important;
  }
  .navbar-nav {
      float: none!important;
      margin-top: 7.5px;
  }
  .navbar-nav>li {
      float: none;
  }
  .navbar-nav>li>a {
      padding-top: 10px;
      padding-bottom: 10px;
  }
  .collapse.in{
      display:block !important;
  }
}

这里有 jsfiddle,可以更好地了解我的解释。 JsFiddle to the problem

最佳答案

在您的样式中添加以下 CSS:

@media (max-width: 991px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}

这是工作片段:

@media (max-width: 991px) {
  .navbar-header {
    float: none;
  }
  .navbar-left,.navbar-right {
    float: none !important;
  }
  .navbar-toggle {
    display: block;
  }
  .navbar-collapse {
    border-top: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
  }
  .navbar-fixed-top {
    top: 0;
    border-width: 0 0 1px;
  }
  .navbar-collapse.collapse {
    display: none!important;
  }
  .navbar-nav {
    float: none!important;
    margin-top: 7.5px;
  }
  .navbar-nav>li {
    float: none;
  }
  .navbar-nav>li>a {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .collapse.in{
    display:block !important;
  }
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="navbar navbar-default navbar-fixed-top">
  <div class="navbar-header"><a class="navbar-brand" href="#">Brand</a>
    <a class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </a>
  </div>
  <div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">Link</a></li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">EN <span class="caret"></span></a>
        <ul class="dropdown-menu">
          <li><a href="#">ES</a></li>
          <li><a href="#">EN</a></li>
        </ul>
      </li>
      <li><a href="#">More</a></li>
      <li><a href="#">Options</a></li>
    </ul>
  </div>
</div>

关于css - 导航栏折叠下拉菜单重叠文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38717693/

相关文章:

JQuery:简单幻灯片的问题

NavBar 的 jQuery 悬停效果不起作用?

javascript - 在 Shiny 中选择一个选项时如何关闭汉堡菜单的下拉菜单

html - 带有列的面板页脚 Bootstrap ,它不会出现在同一行中

css - 如何在 bootstrap3 轮播 slider 中添加图标/图像作为指示器而不是列表圆圈

javascript - 如何将 javascript 从 body 元素移动到特定的 div 元素?

html - 固定 CSS 导航栏

html - 需要 CSS/HTML 帮助修复 IE 中的导航

html - 如何更改悬停父元素上的 css 属性?

css - 在 ios7 native 选择 Jquery Mobile 上越来越不透明的区域