html - Bootstrap 4.1 - 右对齐七个导航栏元素中的三个

标签 html css bootstrap-4

<分区>

我正在使用 Bootstrap 4.1,我正在制作一个包含七个菜单项的导航栏。我想右对齐七个菜单项中的三个,但我不确定如何对其进行编码。这是我尝试过的一种方法(但它不起作用):

<div class="navbar navbar-inverse navbar-fixed-top">
   <div class="container-fluid">
      <div class="navbar-header"></div>
   </div>
</div>

    <!-- Navigation Bar -->

    <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">

      <div class="container-fluid">
        <div class="row" >

        <a class="navbar-brand" href="#">MyNNS</a>
       
        <!-- 'Hamburger' - Shown When Menu is on Small Width Screen -->
        
        <button class="navbar-toggler collapsed" aria-expanded="false" aria-controls="navbar" aria-label="Toggle navigation" type="button" data-toggle="collapse" data-target="#navbar">
             <span class="navbar-toggler-icon"></span> 
        </button>

      <!-- Navigation Bar Menu Items -->

        <div class="navbar-collapse collapse" id="navbar">
          <ul class="nav navbar-nav mr-auto">
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Departments" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Departments</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Resources" data-toggle="modal" data-target="#MyNNSModal"  onclick="showResourceHeader()">Resources</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Procedures" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Procedures</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="News" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">News</a></li> 
          </ul>
        </div>
              
        <div class="d-flex align-self-end">
          <ul class="navbar-nav ml-auto">             
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Newsfeed" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Newsfeed</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="OneDrive" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">OneDrive</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Sites" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Sites</a></li>
          </ul>
        </div>    

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

除了align-self-end,我还尝试了justify-content-endnavbar-right

我的 JSFiddle 代码示例在这里:https://jsfiddle.net/tsmolskow/aq9Laaew/283001/

最佳答案

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Flexbox#There_is_no_justify-self_in_Flexbox

引用:“Flexbox 中没有 justify-self”

我们需要使用自动边距: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Flexbox#Alignment_and_auto_margins

<!-- Navigation Bar Menu Items -->

        <div class="navbar-collapse collapse" id="navbar">
          <ul class="nav navbar-nav mr-auto">
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Departments" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Departments</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Resources" data-toggle="modal" data-target="#MyNNSModal"  onclick="showResourceHeader()">Resources</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Procedures" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Procedures</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="News" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">News</a></li> 
<!--   just one list --   </ul>
        </div>

        <div class="d-flex align-self-end">
          <ul class="navbar-nav ml-auto">              -->
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Newsfeed" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Newsfeed</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="OneDrive" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">OneDrive</a></li>
            <li class="nav-item"> 
               <a class="nav-link menuItemHover active" id="Sites" data-toggle="modal" data-target="#MyNNSModal" onclick="hideResourceHeader()">Sites</a></li>
          </ul>
        </div>    

CSS:

.navbar-nav
{
  display:flex;
/*   justify-content:space-between; -- doesn't work when we want to achieve left / right layout */
  width:900px;
  padding-left:0; /* override browser style */
  list-style-type:none;
  background:pink;
}

/* push last three menu items to the right */
.nav-item:nth-of-type(5)
{
  margin-left:auto;
}

/* give the other menu items apart from the first menu item a left margin to space them out */
.nav-item:not(:nth-of-type(5)):not(:nth-of-type(1))
{
  margin-left:2em;
}

演示:https://codepen.io/carolmckayau/pen/pQqJZp

关于html - Bootstrap 4.1 - 右对齐七个导航栏元素中的三个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53548953/

上一篇:css - 为什么我的 CSS 捕捉点没有生效?

下一篇:css - React-Bootstrap 居中选项卡

相关文章:

html - 通过主要部分后粘性导航栏消失

javascript - 如何在angularjs中使用拆分

javascript - 在表单提交时有条件地显示引导模式

javascript - [style] 属性的 jQuery 查询 SVG

html - Firefox 表格单元格宽度与 Chrome 完全不同

javascript - 单页上的 Jquery 事件导航

html - 如何制作固定位置的页眉?

javascript - 根据折叠元素是否打开更改字形 - Bootstrap

javascript - Bootstrap 4 选项卡在有 2 个时工作,但与 3 个分开

html - 使用 ngFor 实现引导表 - Angular