html - Bootstrap 4 导航栏多元素位置问题

标签 html css bootstrap-4

我试图在 Bootstrap 4 移动屏幕和桌面屏幕中定位三个不同的元素。我需要按以下方式在移动设备中定位:

左侧图像、中心 Logo 图像和右侧切换导航栏按钮。

我试过了,但我只能定位右切换按钮和中心 Logo 图像。如果我尝试放置左侧图像,它会弄乱整个导航栏。请看下面的代码。

<nav class="navbar fixed-top navbar-toggleable-md navbar-inverse" id="mainNav">
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarExample" aria-controls="navbarExample" aria-expanded="false" aria-label="Toggle navigation">
             <i class="fa fa-bars"></i>
        </button>
        <div class="container nav_div">
            <ul class="nav navbar-nav navbar-logo mx-auto">
      <li class="nav-item">
        <a class="nav-link" href="#">Brand</a>
      </li>
    </ul>
            <div class="collapse navbar-collapse" id="navbarExample">
                <ul class="navbar-nav mr-auto">

                  <?php
                  foreach ($this->session->userdata('menu') as $key => $value) {
                    if($value->label == 'Home'){
                      $function_nm = 'index';
                    }elseif ($value->label == 'My info') {
                      $function_nm = 'myInfo';
                    }elseif ($value->label == 'Inbox') {
                      $function_nm = 'inbox';
                    }elseif ($value->label == 'Settings') {
                      $function_nm = 'setting';
                    }
                    ?>
                      <li class="nav-item"><a class="nav-link" href="<?php echo base_url() ?>customerController/<?php echo $function_nm ?>"><?php echo $value->label ?></a></li>
                    <?php
                  }
                  ?>

                  <li class="nav-item"><a class="nav-link" href="<?php echo base_url() ?>customerController/logout">Logout</a></li>

                </ul>
            </div>

        </div>
<!--       <div style="text-align: center;">test</div>-->
    </nav> 

------------css----------------

#mainNav
{
    background: #00a3d6;
}
.navbar-toggler
{
    font-size: 1.85rem;
}
.navbar-logo
{
    font-size: 16px !important;
    text-align: center !important;
    margin-top: 0px;
}

当此菜单在桌面 View 中打开时,左侧图像应位于右侧。 Logo 图像旁边有导航菜单。目前, Logo 和导航菜单处于完美位置。我只需要按照说明在移动设备和桌面设备上放置额外的图像。

enter image description here

作为引用,我上传了一张我想要的移动屏幕和桌面屏幕示例图片。 enter image description here

最佳答案

要实现该目标,您唯一需要做的就是将“其他图像”定位为 HTML 中的第一个项(在导航栏内),然后为其赋予类 顺序-md-last。这会将图像重新排序为中等 (md) 或更大屏幕上的最后项(并在较小的屏幕上恢复为默认值)。

此外,请确保您使用的是实际的 Bootstrap 4 类和导航栏组件。根据您的代码判断,您目前没有这样做。

这是一个有效的代码片段(点击下面的“运行代码片段”并展开到整页进行测试):

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
   
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
<div class="navbar-brand order-md-last">
   <!-- the 'other image' comes here -->
   <img class="" src="https://placehold.it/130x30" alt="other image">
</div>

<a class="navbar-brand" href="#">
    <!-- the 'logo image' comes here -->
    <img src="https://placehold.it/60x30" alt="logo image">
</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>
</nav>

您还会注意到,我将“其他图像”包裹在一个类为 navbar-brand 的 div 中。这是为了使其垂直对齐方式与 Logo 图像相同。

关于html - Bootstrap 4 导航栏多元素位置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49217632/

相关文章:

java - 单击时如何全屏播放视频?

css - Bootstrap 动态药丸只能工作一次?

javascript - 使用 javascript(无 jQuery)将第一个元素之后的所有元素添加到 div

html - CSS - 无法使 CSS 类正常工作,但内联样式确实有效

javascript - 如何制作位置为 :absolute override overflow:hidden of outer element? 的内部元素

html - 如何将链接定位在宽度和高度的中心?

angular - Bootstrap 4 Carousel 在 Angular 2 中工作?错误 : Property 'carousel' does not exist on type 'JQuery'

javascript - 刷新内容 jQuery

html - href 链接在本地有效但无法使用?

html - Bootstrap 4 : make a responsive "pixelart" DIV