【问题标题】:Weird issues with bootstrap navbar on smaller screens小屏幕上引导导航栏的奇怪问题
【发布时间】:2016-05-08 04:07:56
【问题描述】:

所以我的引导导航栏存在一个奇怪的问题。

每次我进入较小的屏幕时都会发生这种情况!除了文本字体和大小之外,样式没有什么独特之处......

.navbar {
  font-size: 30px;
  border: 0;
  height: 65px;
}

.navbar-nav li a:hover,
.navbar-nav li.active a {
  color: #e67e22 !important;
  font-size: 45px !important;
}

.navbar-brand {
  font-size: 40px;
}
<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="../home.html" style="color:black;"><b>Brandon Nolan</b></a>

    </div>
    <div class="collapse navbar-collapse" id="myNavbar">
      <ul class="nav navbar-nav navbar-right">


        <li><a href="#portfolioAnchor" style="color:black;"><b>Bootstrap</b></a></li>
        <li><a href="#blogAnchor" style="color:black;"><b>Spring</b></a></li>
        <li><a href="#contactMeAnchor" style="color:black;"><b>Angular</b></a></li>
        <li><a href="#aboutMeAnchor" id="b1Scroll" style="color:black;"><b>Contact</b></a></li>
      </ul>
    </div>
  </div>
</nav>

【问题讨论】:

标签: css twitter-bootstrap navbar


【解决方案1】:

这与屏幕尺寸本身无关。导航栏中的内容只是占用了太多空间,从而推低了链接——它们还会去哪里?你预计会发生什么?

尝试使用您选择的浏览器开发工具删除链接的字母,当有足够的空间时,您会看到菜单项回到同一行。

您可以通过以下方式解决此问题:

  • 更改链接的大小,使其始终适合,除非菜单处于汉堡包模式。
  • 进行更改,使汉堡菜单显示在更高的屏幕宽度上。

【讨论】:

    【解决方案2】:

    奇怪的导航栏的问题(或行为)取决于它的折叠断点。在这种情况下,您可以根据需要覆盖此断点:现在,导航栏在 min-width: 768px 时崩溃,更改为 max-width: 1000px 即可解决问题。

    @media (max-width: 1000px) {
        .navbar-header {
            float: none;
        }
        .navbar-toggle {
            display: block;
        }
        .navbar-collapse {
            border-top: 1px solid transparent;
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
        }
        .navbar-collapse.collapse {
            display: none!important;
        }
        .navbar-nav {
            float: none!important;
            margin: 7.5px -15px;
        }
        .navbar-nav>li {
            float: none;
        }
        .navbar-nav>li>a {
            padding-top: 10px;
            padding-bottom: 10px;
        }
        .navbar-text {
            float: none;
            margin: 15px 0;
        }
        /* since 3.1.0 */
        .navbar-collapse.collapse.in {
            display: block!important;
        }
        .collapsing {
            overflow: hidden!important;
        }
    }
    

    JSFiddle

    【讨论】:

      【解决方案3】:

      您可以简单地使用媒体查询来控制链接的font-size,从而完全避免这个问题。

      @media (max-width: 991px) {
        .navbar.navbar-default .navbar-nav > li > a {
          font-size: 20px;
        }
      }
      

      如果这样更有意义,也可以查看此 SO post 以更改断点。

      旁注:考虑使用 padding 来更改导航栏而不是高度,因为它在 768 像素以下有副作用(背景颜色将不再可见,因为 navbar默认为min-height: 50px)。

      工作示例。

      .navbar.navbar-default {
        border-color: transparent;
        padding: 15px 0;
      }
      .navbar.navbar-default .navbar-nav > li > a {
        font-size: 30px;
        color: #000;
        font-weight: bold;
      }
      .navbar.navbar-default .navbar-nav > li > a:hover,
      .navbar.navbar-default .navbar-nav > li.active a {
        color: #e67e22;
      }
      .navbar.navbar-default .navbar-brand {
        font-size: 40px;
        color: black;
        font-weight: bold;
      }
      .navbar.navbar-default .navbar-brand:hover {
        color: #e67e22;
      }
      @media (max-width: 991px) {
        .navbar.navbar-default .navbar-nav > li > a {
          font-size: 20px;
        }
      }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
      <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
      <nav class="navbar navbar-default navbar-fixed-top">
        <div class="container">
      
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="../home.html"><b>Brandon Nolan</b></a>
          </div>
      
          <div class="collapse navbar-collapse" id="myNavbar">
            <ul class="nav navbar-nav navbar-right">
              <li><a href="#portfolioAnchor">Bootstrap</a>
              </li>
              <li><a href="#blogAnchor">Spring</a>
              </li>
              <li><a href="#contactMeAnchor">Angular</a>
              </li>
              <li><a href="#aboutMeAnchor" id="b1Scroll">Contact</a>
              </li>
            </ul>
          </div>
      
        </div>
      </nav>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多