How can I position the nav-items to be on the right side when the toggler is clicked?

Viewed 40

I want the nav-items to be placed on the right side. I already try the ms-auto class from Bootstrap but then it seems doesnt work.

<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
    <link rel="stylesheet" href="style.css">
    <title>Portfolio</title>
  </head>
  <body>
    <header>
      <nav class="navbar navbar-expand-lg fixed-top navbar-light">
        <div class="container-fluid justify-content-between mx-5 px-4">
          <a class="navbar-brand" href="#">HELLO</a>
          <button
            class="navbar-toggler collapse collapsed"
            type="button"
            data-bs-toggle="collapse"
            data-bs-target="#navbarCollapse"
            aria-controls="navbarTogglerDemo02"
            aria-expanded="false"
            aria-label="Toggle navigation">

            <span class="navbar-toggler-icon"></span>
          </button>

          <div class="navbar-collapse" id="navbarCollapse">
            <ul class="navbar-nav ms-auto">
              <li class="navbar-item">
                <a class="nav-link active " aria-current="page" href="#">ABOUT</a>
              </li>
              <li class="navbar-item">
                <a class="nav-link active" aria-current="page"href="#">PROJECT</a>
              </li class="navbar-item">
              <li class="navbar-item">
                <a class="nav-link active" aria-current="page" href="#">RESUME</a>
              </li>
              <li class="navbar-item">
                <a class="nav-link active" aria-current="page" href="#">CONTACT</a>
              </li>
            </ul>
          </div>
        </div>

      </nav>
      <!-- <img class="img-fluid" src="img\heading-image.jpg" alt=""> -->
    </header>
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>
    <script src="script.js"></script>
  </body>

The nav-items appear to be on the left, but I want it to be on the right

Hope you can help me with this. Thank you!

1 Answers

Use the responsive text alignment utilities:

  • text-end: right-align at mobile breakpoint
  • text-sm-start: left-align at sm and above (i.e., everything else)
<ul class="navbar-nav ms-auto text-end text-sm-start">

Also there are a couple issues with the current the collapse code:

  • Remove the collapse classes from the button:

    <button class="navbar-toggler collapse collapsed" ...
                                  ^^^^^^^^^^^^^^^^^^ remove these
    
  • Add .collapse the collapse div:

    <div class="collapse navbar-collapse" id="navbarCollapse">
                ^^^^^^^^ add this
    

    right-aligned toggler nav-items


Full working snippet:

<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
    <link rel="stylesheet" href="style.css">
    <title>Portfolio</title>
  </head>
  <body>
    <header>
      <nav class="navbar navbar-expand-lg fixed-top navbar-light">
        <div class="container-fluid justify-content-between mx-5 px-4">
          <a class="navbar-brand" href="#">HELLO</a>
          <button
            class="navbar-toggler"
            type="button"
            data-bs-toggle="collapse"
            data-bs-target="#navbarCollapse"
            aria-controls="navbarCollapse"
            aria-expanded="false"
            aria-label="Toggle navigation">

            <span class="navbar-toggler-icon"></span>
          </button>

          <div class="collapse navbar-collapse" id="navbarCollapse">
            <ul class="navbar-nav text-end text-sm-start ms-auto">
              <li class="navbar-item">
                <a class="nav-link active" aria-current="page" href="#">ABOUT</a>
              </li>
              <li class="navbar-item">
                <a class="nav-link" aria-current="page"href="#">PROJECT</a>
              </li class="navbar-item">
              <li class="navbar-item">
                <a class="nav-link" aria-current="page" href="#">RESUME</a>
              </li>
              <li class="navbar-item">
                <a class="nav-link" aria-current="page" href="#">CONTACT</a>
              </li>
            </ul>
          </div>
        </div>
      </nav>
      <!-- <img class="img-fluid" src="img\heading-image.jpg" alt=""> -->
    </header>
    <!-- Optional JavaScript -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>
    <script src="script.js"></script>
  </body>
</html>

Related