user9644796
user9644796

Reputation:

Bootstrap 4 - prevent links from breaking lines on navbar

When I have too many links in the navbar, when I start to zoom in, then the links start to break lines. I want them to stay the same line before they collapse.

In the snippet below(view full size), There are 6 links, and when you zoom in, there is a certain zoom where the links break lines (before the navbar collapses)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-expand-lg navbar-light fixed-top">
    <div class="container">
        <a class="navbar-brand mx-auto" href="#">
			Logo
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse text-right" id="navbarTogglerDemo02">         
            <ul class="navbar-nav ml-auto mt-2 mt-lg-0">
                <li class="nav-item main-nav">
                    <a class="nav-link" href="#">Navbar Link Number 1</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Navbar Link Number 2</a>
                </li>
                <li class="nav-item">
                    <a  class="nav-link" href="#">Navbar Link Number 3</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Navbar Link Number 4</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Navbar Link Number 5</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Navbar Link Number 6</a>
                </li>
           </ul>
        </div>
    </div>
</nav>

Upvotes: 6

Views: 10840

Answers (3)

estinamir
estinamir

Reputation: 503

You could hide overflown links if the users who zoom in are few, better than wrapping menu to 2 lines:

<style>
   @media (min-width: 1201px) {
        .navbar-nav {
            overflow: hidden !important;
            max-height: 50px;
        }
   }
</style>

Upvotes: 0

zivc
zivc

Reputation: 353

For anyone coming from Google, don't use &nbsp; as mentioned in another solution, that makes content unmanageable and uses markup to dictate presentation.

You can mimic what Bootstrap does with an easy class such as;

.text-nowrap {
    white-space: nowrap !important;
}

As its a utility class, it is ok to use !important.

Hope that helps

Upvotes: 0

Carol Skelly
Carol Skelly

Reputation: 362360

Use the text-nowrap utility class on the links...

https://www.codeply.com/go/tKwvJnDJ42

<nav class="navbar navbar-expand-lg navbar-light fixed-top">
    <div class="container">
        <a class="navbar-brand mx-auto" href="#">
            Logo
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse text-right" id="navbarTogglerDemo02">         
            <ul class="navbar-nav ml-auto mt-2 mt-lg-0">
                <li class="nav-item main-nav">
                    <a class="nav-link text-nowrap" href="#">Navbar Link Number 1</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link text-nowrap" href="#">Navbar Link Number 2</a>
                </li>
                <li class="nav-item">
                    <a  class="nav-link text-nowrap" href="#">Navbar Link Number 3</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link text-nowrap" href="#">Navbar Link Number 4</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link text-nowrap" href="#">Navbar Link Number 5</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link text-nowrap" href="#">Navbar Link Number 6</a>
                </li>
           </ul>
        </div>
    </div>
</nav>

Upvotes: 15

Related Questions