首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义导航栏

自定义导航栏
EN

Stack Overflow用户
提问于 2020-03-11 04:57:28
回答 1查看 67关注 0票数 1

我正在尝试为我的网站设计导航栏,以便在桌面和移动模式下使用。

我已经创建了一个JS Fiddle here

这是目前为止的html:

代码语言:javascript
复制
<div class="container-fluid">
  <nav class="navbar navbar-expand-sm navbar-light">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Link</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Dropdown
          </a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
            <a class="dropdown-item" href="#">Action</a>
            <a class="dropdown-item" href="#">Another action</a>
            <div class="dropdown-divider"></div>
            <a class="dropdown-item" href="#">Something else here</a>
          </div>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#">Disabled</a>
        </li>
      </ul>



      <div class="row no-gutters ml-auto">

        <div class="col-3">
          <button class="btn btn-outline-warning btn-sm mr-1" data-toggle='modal' data-target='#login'>
                        <i class="fas fa-sign-in-alt mr5"></i>
                        Login
                    </button>
        </div>
        <div class="col-6 ml-auto">
          <form class="form-inline mr-1" action='/search' method='POST'>
                        <div class="input-group input-group-sm mx-auto">
                          <input type="text" class="form-control" name='search_string' placeholder="Search" value=''>
                          <div class="input-group-append">
                            <button class="btn btn-outline-warning" type="submit"><i class="fas fa-search mr5"></i></button>
                          </div>
                        </div>
                    </form>
        </div>
        <div class="col-3 text-right">
          <div class="dropdown">
              <button class="btn btn-outline-warning btn-sm dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown
              </button>
              <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
                <a class="dropdown-item" href="#">Dropdown Option</a>
                <a class="dropdown-item" href="#">Dropdown Option</a>
                <a class="dropdown-item" href="#">Dropdown Option</a>
                <a class="dropdown-item" href="#">Dropdown Option</a>
                <a class="dropdown-item" href="#">Dropdown Option</a>
                <a class="dropdown-item" href="#">Dropdown Option</a>
                <a class="dropdown-item" href="#">Dropdown Option</a>
              </div>
            </div>
        </div>


      </div>



    </div>
  </nav>
</div>

我希望右对齐的菜单项(在行中)紧邻在一起(就像每个菜单项上的mr-1间距)--但在桌面模式下,col类会在它们之间添加间距。然而,当窗口变小时,我希望当你下拉菜单时,它们是在cols中,并且间隔得很好。我尝试过使用flex-row,但是无论我怎么尝试,我都不能让它工作。我不确定在导航栏中放置一行是正确的方法。我对bootstrap4还很陌生,所以我不确定最好的方法是什么。感谢您的帮助。

最终,我希望我的菜单是这样的,但我不知道如何在BootStrap 4中构建它:

在LG中:

和XS屏幕尺寸:

(我无法让Menu 1完全移动到右侧,使其与下拉菜单对齐)

我可以很容易地在bootstrap3中做到这一点,但由于某些原因,我正在努力掌握4的工作方式。它不一定非得是一个导航栏,如果上面所说的只需要行和列就可以实现,我很乐意听到它。

EN

回答 1

Stack Overflow用户

发布于 2020-03-11 08:12:20

您可以尝试添加push / pull,如下所示,https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_grid_ex9&stacked=h是一种选择。在您的第一行,您可以通过两种方式实现此结果,一种是使用offfset,如下所示。示例中使用的是中等大小,您需要根据您的特定布局更改它。

代码语言:javascript
复制
<div class="row row-fluid"> // row to be inside of a container
<div class="col-md-2">
Your burger-menu here
</div>
<div class="col-md-2 offset-md-8">
Your burger-menu here
</div>
</div>

然后,为登录搜索下拉菜单开始一个新行,但仍然在同一个conatiner中

代码语言:javascript
复制
<div class="row row-fluid">
<div class="col-md-2">
login code
</div>
<div class="col-md-8">
search code
</div>
<div class="col-md-2">
dropdown code
</div>
</div>

显然,就像在Bootstrap 3中一样,您需要将列设置为适用于所有不同的大小。如果上面的方法不适用于您的布局,那么可以尝试使用push和pull方法来使用您当前的配置将div移到适当的位置。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60625823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档