Bootstrap 导航栏中的居中菜单项

Center menu items in Bootstrap nav bar

我想将导航栏上的菜单项居中。现在我的导航栏看起来像这样:

我想将导航栏的“用户”、“管理员”和“记录”居中。我还想将徽标稍微居中对齐,而不是在导航栏的底部边缘。

下面是我的导航条代码:

  <nav class="navbar navbar-expand-lg py-5 navbar-dark  shadow-sm " style="background-color: #264653;width:100%;" >
  <div class="container">

      <div class="nameLogo">
              <span class="navbar-brand" style="display:flex;">
        
                    <img src="~/Images/InfoOrange.png" alt="ACR" width="70" height="70" class="d-inline-block align-middle mr-2" runat="server" />
      
               <span style="font-size:25px;color:white;"><span style="color:#e9c46a">City of Test</span><br />COMPANY OF TEST</span>

            </span>
        </div>
    <button type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler"><span class="navbar-toggler-icon"></span></button>

    <div id="navbarSupportedContent" class="collapse navbar-collapse">
      <div>
      <ul class="navbar-nav ml-auto">
       <%-- <li class="nav-item active"><a href="#" class="nav-link">Home <span class="sr-only">(current)</span></a></li>--%>
        <li class="nav-item dropdown nav-item active">
        <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Users
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="#">Details</a>
          <a class="dropdown-item" href="Depatment.aspx">Department</a>
     
         <%-- <a class="dropdown-item" href="#">Sections</a>--%>
        </div>
      </li>
          <li>&nbsp;</li>

              <li class="nav-item dropdown nav-item active">
        <a class="nav-link dropdown-toggle" href="#" id="admindropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Admin
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="NewBoxFolder.aspx">Box/Folder</a>
          <a class="dropdown-item" href="#">Configuration</a>

        </div>
      </li>
           <li>&nbsp;</li>
               <li class="nav-item dropdown nav-item active">
        <a class="nav-link dropdown-toggle" href="#" id="recordsDropDown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Records
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="FileUpload.aspx">BlockChain Upload</a>
          <a class="dropdown-item" href="#">Verify</a>
          <a class="dropdown-item" href="DocReport.aspx">Report</a>
            <a class="dropdown-item" href="BucketList.aspx">S3 List</a>
        </div>
      </li>
    </ul>
          </div>
                </div>
 
      <div class="sign">
          <ul>
                 
        <li class="nav-item" style="margin-right:5px" >
            <a class="nav-link px-5" href="<%= ResolveUrl("~/Pages/SignOut.aspx") %>">Sign Out</a>
        </li>
 
          </ul>
      </div>

          <div class="welcome">
          <ul>
                 
        <li class="nav-item" style="margin-right:5px" >
         Welcome  <%=userName %>
        </li>
 
          </ul>
      </div>
  </div>
</nav>

我尝试使用 Bootstrap 对齐中心,但没有用。

任何帮助将不胜感激。

  1. 将 class justify-content-center 添加到 ID navbarSupportedContent 的 div,您的项目将居中。
  2. 关于标志,我复制了你的代码,标志文字似乎和其他项目在同一条中心线上。

JSFiddle

构建网格时,将其视为积木,但定义为“包装器”。因此,开始的一个好方法是查看构成菜单的块类型。

在你的情况下,我会说有 4 个主要包装部分,

  1. 导航栏本身。

  2. 徽标。

  3. 菜单项(用户、管理员、记录)。

  4. 操作,即注销。

考虑到所有这些,我们可以开始构建我们的网格。 Flex-box 有各种方便的属性,例如:justify-contentalign-items.

考虑到我提出的结构的示例:

.row {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    display: flex;
    flex: 0 0 100%;
    flex-wrap: wrap;
    max-width: 100%;
    margin-top: calc(var(--bs-gutter-y) * -1);
    margin-right: calc(var(--bs-gutter-x) * -.5);
    margin-left: calc(var(--bs-gutter-x) * -.5);
}

.row > * {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    margin-top: var(--bs-gutter-y);
}

.col-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
}

.col-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
}

.col-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
}

.no-gutters {
    --bs-gutter-y: 0;
    --bs-gutter-x: 0;
}

.navbar {
    padding-left: 15px;
    padding-right: 15px;
    background-color: #324c3b;
    color: #fff;
}

.nav-container {
    max-height: 100%;
    justify-content: space-between;
    align-items: center;
}

.nav-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    max-height: 100%;
    overflow: hidden;
}

.nav-logo > img {
    display: flex;
    height: auto;
    max-height: 100%;
    width: 100%;
    object-fit: contain;
}

.text-center {
    text-align: center;
}
<nav class="navbar row">
    <div class="nav-container row">
        <div class="nav-logo col-1">
            <img src="https://picsum.photos/150/100" alt="Logo" />
        </div>
        <div class="menu-container col-8">
            <div class="row no-gutters">
                <div class="menu-item col-4 text-center">
                    User
                </div>
                <div class="menu-item col-4 text-center">
                    Admin
                </div>
                <div class="menu-item col-4 text-center">
                    Records
                </div>
            </div>
        </div>
        <div class="actions-container col-1 text-center">
            <a href="#">Sign Out</a>
        </div>
    </div>
</nav>

Codepen:here.