【问题标题】:Having bootstrap navbar have elements on top and bottom of header引导导航栏在标题的顶部和底部有元素
【发布时间】:2018-01-16 15:01:41
【问题描述】:

我似乎无法完全理解在导航栏底部和顶部都有元素的引导导航,同时仍然使用可折叠的导航栏。

这是我尝试过的:Fiddle

如您所见,我能够实现导航栏顶部和底部的文本(同时仍然使用可折叠导航栏功能),但是当您在移动设备中查看它时(例如,当菜单折叠并且您点击汉堡标志),它完全搞砸了。

所以这让我想知道我是否没有以正确的方式接近这个?

这是 CSS:

#mainNavBarTop {
    position: absolute;
    margin-top: -10px;
    top: 0;
    left: 0;
}

#mainNavBarBottom {
    position: absolute;
    margin-bottom: -10px;
    bottom: 0;
    left: 0;
}

和 HTML

<nav class="navbar navbar-default">
        <div class="container-fluid">
           <div class="navbar-header"><button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><img src="" /></div>
           <div class="navbar-collapse collapse" id="navbar">

                               <ul class="nav navbar-nav" id="mainNavBarBottom">
                 <li class="bottom"><a href="#">About</a></li>
                 <li class="bottom"><a href="#">Contact</a></li>
              </ul>
              <ul class="nav navbar-nav" id="mainNavBarTop">
                 <li class="bottom"><a href="#">About</a></li>
                 <li class="bottom"><a href="#">Contact</a></li>
              </ul>
              <form class="navbar-form navbar-right" role="search">
                 <div class="form-group"><input class="form-control" type="text" placeholder="Search"/></div>
                 <button class="btn btn-default" type="submit">Submit</button>
              </form>
           </div>
        </div>
     </nav>

【问题讨论】:

  • 问题来自您在#myNavbar .nav 上使用position: absolute (命中&lt;ul&gt; 元素)。虽然我没有确切地看到为什么你正在应用它。您是否尝试在移动视图上偏移下拉菜单的高度?
  • 这是我在导航栏顶部和底部的尝试。
  • 您是否正在寻找类似this 的内容,其中的文本位于桌面导航菜单和移动切换图标的下方和上方?
  • 不,抱歉,我需要文本是下拉菜单中的内容,如果我没有在我的问题中说清楚,我深表歉意
  • 这可行吗?有没有其他方法可以实现同样的体验?

标签: html css twitter-bootstrap


【解决方案1】:

如果您希望导航链接在桌面视图上显示为多行,您所要做的就是为容纳图像的导航栏指定 width,并在下拉列表中添加足够的项目,以便它们溢出。

或者,您可以通过将float: right 添加到导航栏的li 元素,将链接压在右侧而不是左侧。请注意,这将反转列表中项目的顺序,因此如果您选择这样做,您可能希望在 HTML 本身中以相反的顺序列出链接。

您可以通过展开下面的 sn-p 或查看 JSFiddle here 来查看这一点。尽管在桌面视图中占据了两行,但这些链接都在折叠菜单中直接位于彼此下方。将 JSFiddle 扩展至最大宽度表明,当有足够的空间容纳链接时,链接将恢复为单行。

@media (min-width: 768px) {
  .navbar-nav.pull-right {
    width: calc(100% - 120px); /* 100% - image width */
  }
  .navbar-nav>li {
    float: right; /* Optionally align items to the right */
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />

<nav class="navbar navbar-default">
  <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>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#"><img class="img-responsive" src="http://placehold.it/120x30" width="120px;" /></a>
    </div>
    <div class="collapse navbar-collapse" id="myNavbar">
      <ul class="nav navbar-nav pull-right">
        <li><a href="/browser/saved/">Saved searches</a></li>
        <li><a href="../index.html">Settings</a></li>
        <li><a href="../index.html">About</a></li>
        <li><a href="../index.html">Sign In</a></li>
        <li><a href="../index.html">Another Link</a></li>
        <li><a href="../index.html">Another Link</a></li>
        <li><a href="../index.html">Another Link</a></li>
        <li><a href="../index.html">Another Link</a></li>
      </ul>
    </div>
  </div>
</nav>

希望这会有所帮助! :)

【讨论】:

  • 看起来不错,还没有时间实现这个,但基于小提琴,按我的意愿做。谢谢!
  • 有什么方法可以强制文本位于底部或顶部?我希望其中一些在顶部,一些在底部。似乎如果屏幕足够大,那么它们都会被扔在同一条线上。就像如果我只想要 2 个项目在顶部,我可以上课以确保它们出现在顶部,并且在底部相同。
猜你喜欢
  • 2019-11-03
  • 1970-01-01
  • 2020-07-08
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多