首页 > 解决方案 > Bootstrap 4 Navbar Collapse Menu Right and Width always XS

问题描述

我需要最好使用 HTML 而不是 CSS 来完成以下操作:

  1. 菜单总是在任何屏幕尺寸上折叠
  2. 在 XS 或小屏幕上,切换菜单选项为全屏
  3. 在 MD 或中型和更大的屏幕上,切换的菜单选项应位于右侧,固定宽度(如 2 列)更像下拉菜单。

前 2 个要求是默认行为,但我不知道第 3 个要求,我的代码如下:

    <nav class="navbar navbar-dark fixed-top">

    <div class="d-flex w-100 flex-nowrap">
        <a class="navbar-brand" href="/">
            <img src="~/images/matrixforce-white-logo.svg" width="343" height="54" class="img-fluid" alt="Matrixforce White Logo" />
        </a>

        <span class="ml-auto my-md-auto"><a href="https://outlook.office365.com/owa/calendar/Matrixforce@matrixforce.com/bookings/" rel="nofollow" target="_blank" type="button" class="btn btn-success mr-3 d-none d-lg-block" role="button">Schedule Consult <span class="fas fa-play"></span></a></span>

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

        <div class="collapse navbar-collapse" id="navbarCollapse">

        <ul class="navbar-nav">
            <li class="nav-item py-md-1">
                <a class="nav-link py-md-4" href="@Url.Action("Index","Guardian")">Guardian</a>
            </li>
            <li class="nav-item py-md-1">
                <a class="nav-link py-md-4" href="@Url.Action("Index","Orbit")">Orbit</a>
            </li>
            <li class="nav-item py-md-1">
                <a class="nav-link py-md-4" href="@Url.Action("Index","Phoenix")">Phoenix</a>
            </li>
            <li class="nav-item py-md-1">
                <a class="nav-link py-md-4" href="@Url.Action("Index","Overwatch")">Overwatch</a>
            </li>
            <li class="nav-item py-md-1">
                <a class="nav-link py-md-4" href="@Url.Action("Index","Support")">Support</a>
            </li>
            <li class="nav-item py-md-1">
                <a class="nav-link py-md-4" href="@Url.Action("Contact","Home")">Contact</a>
            </li>
        </ul>

        <form class="form-inline my-2 my-lg-0 d-flex flex-nowrap ml-3 mr-auto" method="get" action="@Url.Action("Search","Home")">
            <input class="form-control mr-sm-2" type="search" name="q" placeholder="Search" aria-label="Search">
            <button class="btn btn-primary my-sm-0" type="submit"><i class="fas fa-search"></i></button>
        </form>

        <div class="d-lg-none d-xl-none">
            <a href="https://outlook.office365.com/owa/calendar/Matrixforce@matrixforce.com/bookings/" rel="nofollow" target="_blank" type="button" class="btn btn-success ml-3 my-3" role="button">Schedule Consult <span class="fas fa-play"></span></a>
        </div>

    </div>

</nav>

标签: asp.net

解决方案


我决定使用始终扩展的导航栏,但使用切换器图标进行下拉以实现此结果。

<div class="navbar fixed-top navbar-expand navbar-dark bg-dark">
<div class="container-fluid">
    <a class="navbar-brand" href="/">
        <img src="/images/matrixforce-white-logo.svg" width="343" height="54" class="img-fluid" alt="Matrixforce White Logo" />
    </a>
    <a class="btn btn-success d-none d-lg-block ms-md-auto me-md-4" href="https://outlook.office365.com/owa/calendar/Matrixforce@matrixforce.com/bookings/" rel="nofollow" target="_blank" type="button" role="button">Schedule Consult<span class="fas fa-play ms-1"></span></a>
    <ul class="navbar-nav">
        <li class="nav-item dropdown">
            <a class="nav-link" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                <span class="navbar-toggler-icon"></span>
            </a>
            <ul class="dropdown-menu dropdown-menu-end mt-3" style="min-width:276px;" aria-labelledby="navbarDropdown">
                <li><a class="dropdown-item my-2 py-2" href="/guardian/">Guardian</a></li>
                <li><a class="dropdown-item my-2 py-2" href="/orbit/">Orbit</a></li>
                <li><a class="dropdown-item my-2 py-2" href="/phoenix/">Phoenix</a></li>
                <li><a class="dropdown-item my-2 py-2" href="/overwatch/">Overwatch</a></li>
                <li><a class="dropdown-item my-2 py-2" href="/support/">Support</a></li>
                <li><a class="dropdown-item my-2 py-2" href="/contact/">Contact</a></li>
                <li>
                    <form class="form-inline my-2 my-lg-0 d-flex flex-nowrap mx-2 py-2 " method="get" action="/search/">
                        <input class="form-control me-sm-2" type="search" name="q" placeholder="Search" aria-label="Search">
                        <button class="btn btn-primary my-sm-0" type="submit"><i class="fas fa-search"></i></button>
                    </form>
                </li>
                <li class="d-lg-none d-xl-none">
                    <a class="btn btn-success ms-2 my-2" href="https://outlook.office365.com/owa/calendar/Matrixforce@matrixforce.com/bookings/" rel="nofollow" target="_blank" type="button" role="button">Schedule Consult<span class="fas fa-play ms-1"></span></a>
                </li>
            </ul>
        </li>
    </ul>
</div>

推荐阅读