简体   繁体   中英

Stop my Navbar from shifting when I resize the browser window

I'm taking over a project from a work colleague. I'm trying to get the Navbar to stop collapsing when the browser window is made smaller. I'm not proficient in Bootstrap, so I need help.

Here is the HTML and Javascript.

<body  onresize="onResize()">
    <div id="masterlayout" class="fixed-top">
        <nav class="navbar navbar-expand-md navbar-dark bg-dark">
            <h1 class="navbar-brand d-flex align-items-center">Divine</h1>
            <div class="container">
                <ul class="nav navbar-nav">
                    <li></li>
                    <li class="nav-item nav-link mx-1">@Html.ActionLink("Home", "Index", "Home")</li>
                    @if (1 == 1)
                    {
                        <li class="nav-item nav-link mx-1">@Html.ActionLink("Site Admin", "RegisterUsers", "SiteAdmin")</li>
                    }
                    <li class="nav-item nav-link mx-1">@Html.ActionLink("Promotional", "Promotional", "Promotional")</li>
                    <li class="nav-item nav-link mx-1">@Html.ActionLink("Reports", "Contact", "Home")</li>
                </ul>
            </div>
            @Html.Partial("_LoginPartial")
        </nav>
        <div style="background-color: darkgray; width: 100%; height: 10px;">


        </div>

    </div>
    
    <div id="content1">
        @RenderBody()
    </div>
</body>
</html>
<script type="text/javascript">
    $(document).ready(function () {
        var height = document.getElementById("masterlayout").offsetHeight;
        document.getElementById("content1").style.marginTop = height - 1 + 'px';
    });
    $(document).ready(function () {
        var height = document.getElementById("masterlayout").offsetHeight;
        document.getElementById("menu").style.marginTop = height - 1 + 'px';
    });

    function onResize() {
        var height = document.getElementById("masterlayout").offsetHeight;
        document.getElementById("content1").style.marginTop = height - 1 + 'px';
    }
    function onResize() {
        var height = document.getElementById("masterlayout").offsetHeight;
        document.getElementById("menu").style.marginTop = height - 1 + 'px';
    }
</script>

Here is the CSS portion.

.container {
    max-width:800px;
    margin-left:0px;
}

Here is a picture of what it looks like normal. 导航条宽

This is what it does when I minimize the screen. I want it to just fall off the screen and not compact itself. 导航栏缩短

I've tried inputting <style> min-width="800px"</style> directly in both divs,and the nav and the UL. Nothing worked. I'm thinking I need to utilize bootstrap to do this or Javascript, and I don't know enough about that, but I'm willing to learn!

Result I want the browser window to be able to be minimized, and the navbar to stay like it is when it's long, and not wrap around and lower itself.

You are using the Bootstrap class navbar-expand-md which is telling the browser to collapse the nav on screens smaller than 768px - if you change that to navbar-expand , it stops the nav from collapsing. If the menu options no longer fit into the width of the screen, they will wrap to a second line.

If you want to prevent this you can set a min-width on your container. However note that because the nav uses the fixed-top class, it has position:fixed meaning that the rig ht-most items will be off-screen on smaller devices and the user cannot access them. You would need to remove the fixed positioning, or you could add a scrollbar to the nav (but that is ugly and unwieldy).

Working Snippet with navbar-expand:

 .container { max-width:800px; margin-left:0px; /* IF YOU WANT TO PREVENT THE ITEMS WRAPPING ONTO A 2ND LINE WHEN THEY NO LONGER FIT IN THE WINDOW: min-width:500px; */ }
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <body> <div id="masterlayout" class="fixed-top"> <nav class="navbar navbar-expand navbar-dark bg-dark"> <h1 class="navbar-brand d-flex align-items-center">Divine</h1> <div class="container"> <ul class="nav navbar-nav"> <li></li> <li class="nav-item nav-link mx-1">Home</li> <li class="nav-item nav-link mx-1">Site Admin</li> <li class="nav-item nav-link mx-1">Promotional</li> <li class="nav-item nav-link mx-1">Reports</li> <li class="nav-item nav-link mx-1">Login</li> </ul> </div> </nav> <div style="background-color: darkgray; width: 100%; height: 10px;"> </div> </div> </body>

References: Bootstrap Navbar

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM