在较小的屏幕上使用bootstrap导航栏的奇怪问题

时间:2016-05-07 17:47:26

标签: css twitter-bootstrap navbar

所以我的bootstrap导航栏有一个奇怪的问题我遇到了麻烦。

每次我去一个较小的屏幕,这都会发生!除了文本字体和大小之外,没有什么独特的样式....

enter image description here

.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>

3 个答案:

答案 0 :(得分:0)

这与屏幕尺寸本身无关。导航栏中的内容只占用太多空间,从而推动链接 - 他们还会去哪里?你期望发生什么?

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

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

  • 更改链接的大小,使它们始终适合,但菜单处于汉堡模式时除外。
  • 更改以便汉堡菜单显示在更高的屏幕宽度上。

答案 1 :(得分:0)

奇怪的导航栏问题(或行为)取决于其崩溃断点。在这种情况下,您可以根据需要覆盖此断点:现在,导航栏在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

答案 2 :(得分:0)

您可以直接使用媒体查询来控制链接的font-size,以便一起避免此问题。

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

或者,如果更有意义的话,请参阅此SO post来更改断点。

侧注:考虑使用填充来更改导航栏而不是高度,因为它具有768px以下的副作用(自{{1}后,背景颜色将不再可见默认设置为navbar)。

工作示例。

&#13;
&#13;
min-height: 50px
&#13;
.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;
  }
}
&#13;
&#13;
&#13;