Bootstrap 5 中的自定义导航栏

问题描述 投票:0回答:1

我想要一个自定义导航栏,如下所示:

  • 中心徽标
  • 左侧有 3 个菜单按钮(可折叠)
  • 右侧有 2 个图标(帐户和 Instagram)(始终展开)

折叠时,我希望在左侧看到汉堡包图标,在中间看到徽标,在右侧看到两个水平对齐的图标。我检查了导航栏示例,没有看到与我正在寻找的内容类似的内容。

这是我的尝试。它似乎有效,除了当左侧菜单折叠时,右侧菜单变为垂直而不是保持水平。

.navbar-brand.abs {
  position: absolute;
  width: auto;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">

<nav class="navbar navbar-expand-md navbar-dark bg-dark" aria-label="Navbar example">
  <div class="container-fluid">
    <a class="navbar-brand abs" href="#">Logo</a>
    
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">About</a>
        </li>
        <li class="nav-item">
          <a class="nav-link">Shop</a>
        </li>
      </ul>
    </div>
    
    <div>
      <ul class="navbar-nav ms-auto">
        <li class="nav-item">
          <a class="nav-link" aria-current="page" href="#">X</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Y</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>

html css bootstrap-5 navbar
1个回答
0
投票

绝对定位很少需要,而且往往会导致比它解决的问题更多的问题。使用 Boostrap 也很少需要编写自定义 CSS 布局。

这里的解决方案似乎只是重新排序文档以匹配您的描述。如果您更喜欢其他文档顺序,您可以使用 Bootstrap 的 flex 顺序类

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">

<nav class="navbar navbar-expand-md navbar-dark bg-dark" aria-label="Navbar example">
  <div class="container-fluid">    
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">About</a>
        </li>
        <li class="nav-item">
          <a class="nav-link">Shop</a>
        </li>
      </ul>
    </div>
    
    <a class="navbar-brand" href="#">Logo</a>
    
    <div>
      <ul class="navbar-nav ms-auto">
        <li class="nav-item">
          <a class="nav-link" aria-current="page" href="#">X</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Y</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>

© www.soinside.com 2019 - 2024. All rights reserved.