43Tesseracts
43Tesseracts

Reputation: 4937

How to keep a Bootstrap navbar link from collapsing

If I have a Bootstrap3 navbar like in the snippet below, how can I prevent items from collapsing with the rest of the menu items when the viewport shrinks, while maintaining their styling?

In the example, Text and Link 1 menu items don't collapse, but they screw up the menu.

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
      <ul class="nav navbar-nav">
        <li><p class="navbar-text" href="#">Text </p></li>
        <li><a href="#">Link 1</a></li>
      </ul>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href="#">Link 2</a></li>
        <li><a href="#">Link 3</a></li>
      </ul>
      
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link4</a></li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

Upvotes: 0

Views: 766

Answers (1)

Praveen Murali
Praveen Murali

Reputation: 741

Just added a class 'navbar-nav--static-left' to the left nav and applied some styles on it. Hope it will help you. Please check.

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
      <ul class="nav navbar-nav navbar-nav--static-left">
        <li>
          <p class="navbar-text" href="#">Text </p>
        </li>
        <li><a href="#">Link 1</a></li>
      </ul>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href="#">Link 2</a></li>
        <li><a href="#">Link 3</a></li>
      </ul>

      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link4</a></li>
      </ul>
    </div>
    <!-- /.navbar-collapse -->
  </div>
  <!-- /.container-fluid -->
</nav>
<style>
  .navbar-nav--static-left {
    float: left;
    width: auto;
  }
  
  .navbar-nav--static-left>li {
    float: left;
    position: relative;
  }
  
  @media (max-width:767px) {
    .navbar-nav--static-left .navbar-text {
      margin-top: 10px;
      margin-bottom: 10px;
      margin-left: 10px;
    }
  }
</style>

Upvotes: 1

Related Questions