Search code examples
htmltwitter-bootstrapmenudropdown

What's the purpose of dropdown-toggle class in bootstrap dropdowns?


Dropdown menus work perfectly with or without the dropdown-toggle bootstrap class being applied to <button> element,so why use it in the first place?


Solution

  • The dropdown-toggle class adds the outline: 0; on :focus to the button, so when you click on the button it will not have the surrounding blue border of the "active" element.

    Check the next two bottons:

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    <div class="container">
      <h2>Dropdowns</h2>
      <p>The .divider class is used to separate links inside the dropdown menu with a thin horizontal line:</p>
      <div class="dropdown">
        <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">Tutorials - no border
          <span class="caret"></span></button>
        <ul class="dropdown-menu">
          <li><a href="#">HTML</a></li>
          <li><a href="#">CSS</a></li>
          <li><a href="#">JavaScript</a></li>
          <li class="divider"></li>
          <li><a href="#">About Us</a></li>
        </ul>
      </div>
    </div>
    
    <div class="container">
      <h2>Dropdowns</h2>
      <p>The .divider class is used to separate links inside the dropdown menu with a thin horizontal line:</p>
      <div class="dropdown">
        <button class="btn btn-default" type="button" data-toggle="dropdown">Tutorials - with border
          <span class="caret"></span></button>
        <ul class="dropdown-menu">
          <li><a href="#">HTML</a></li>
          <li><a href="#">CSS</a></li>
          <li><a href="#">JavaScript</a></li>
          <li class="divider"></li>
          <li><a href="#">About Us</a></li>
        </ul>
      </div>
    </div>