【问题标题】:Bootstrap CSS messes up collapsible menu z-index?Bootstrap CSS 弄乱了可折叠菜单的 z-index?
【发布时间】:2018-11-15 00:46:02
【问题描述】:

基本上,我的网站有一个粘性标题和侧边栏导航,但是当屏幕变小时,菜单采用可以展开可折叠侧边栏的汉堡按钮。

这按预期工作,除了一件事:包含引导 CSS cdn。

因此,如果我注释掉引导 CSS 的 CDN,它可以正常工作,但如果我包含它并使屏幕移动大小,则在点击菜单按钮时,菜单会在主 div 的主要内容卡下展开。如果我将其注释掉,菜单会按应有的方式在卡片顶部展开。

在我上面的 codepen 中,它有引导 CDN 来显示错误。我有一个自定义 CSS,它也附加在那里,我在那里有很多样式,我只是想知道如何修复这个问题,并且仍然有引导 CSS 用于其他样式。

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet"/>
<header>
  <div class="branding">
    <div class="menu-button menu-toggle nav">
      <i class="material-icons">menu</i>
    </div>
    <img src=""/>
  </div>
  <div class="page-details"></div>
  <div class="settings">
    <div class="menu-button profile">
      <i class="material-icons">person</i>
    </div>
    <div class="menu-button menu-toggle aside">
      <i class="material-icons">chat</i>
    </div>
  </div>
</header>
<div class="app">
  <nav>
    <div class="title-block">
      <img src=""/>
    </div>
    <ul>
      <li>
        <a href="#">
          <i class="material-icons">home</i>
          <span>Home</span>
        </a>
      </li>
      <li>
        <a href="#">
          <i class="material-icons">adb</i>
          <span>Menu Item with a Long Name</span></a></li>
      <li>
        <a href="#">
          <i class="material-icons">android</i>
          <span>Android</span></a></li>
      <li>
        <a href="#">
          <i class="material-icons">attachment</i>
          <span>Attachments</span>
        </a>
      </li>
      <li>
        <a href="#">
          <i class="material-icons">bookmark</i>
          <span>Bookmarks</span>
        </a>
      </li>
      <li>
        <a href="#">
          <i class="material-icons">star</i>
          <span>Favorites</span>
        </a>
      </li>
      <li>
        <a href="#">
          <i class="material-icons">build</i>
          <span>Configuration</span>
        </a>
      </li>
      <li>
        <a href="#">
          <i class="material-icons">cake</i>
          <span>Birthday Party</span>
        </a>
      </li>
      <li>
        <a href="#">
          <i class="material-icons">brush</i>
          <span>Designer</span>
        </a>
      </li>
      <li>
        <a href="#">
          <i class="material-icons">camera</i>
          <span>Photos</span>
        </a>
      </li>
    </ul>
  </nav>

  <!--These are the cards that the menu expands underneath-->
  <article>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
  </article>
</div>

【问题讨论】:

  • 添加nav.open {z-index: 999;} 没有效果吗?
  • 这对我来说很有趣 - 你提到了 z-index,但你的 nav.open 没有 - 我所做的只是将 z-index 添加到 nav.open,它在顶部而不是在后面....(我个人喜欢使用非常大的数字 - 例如 255555(这有点武断)来尝试确保它大于任何其他 z-index)
  • 只需将z-index: 1; 添加到nav 即可为我修复它...

标签: html css bootstrap-4


【解决方案1】:

z-index: 9999; 添加到nav.open 有效。

【讨论】:

  • 不知道我怎么完全错过了这个!非常感谢
  • 没有问题。很高兴你把它整理好了。
  • 只是在z-index 中添加疯狂的数字是不好的做法。
  • 我实际上同意这一点,但在这种情况下解决问题是安全的做法。
  • 我明白,但according to Bootstrap1071 如果需要的话就足够了 :)
【解决方案2】:

nav.open {z-index: 1 !important};

Z-index 将允许您在其他元素之上显示导航,并且 !important 将帮助您覆盖引导 css

【讨论】:

  • 为什么不使用适当的级联而不是使用!important sledgehammer?
猜你喜欢
  • 2015-11-25
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
相关资源
最近更新 更多