Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to apply margin right to nav bar not affecting the navbar collapse using Bootstrap?

Goal:

I am aiming to place the nav bar items to this position using padding or margin marked in red:

enter image description here

Problem

I realized if I apply some padding right or margin right, the collapsed (Mobile screen) li items are applied with margin right or padding-right.

Here is a ridiculous example of high padding applied:

enter image description here

Goal:

This is the desired output:

enter image description here

And finally, properly centered collapsed li items in responsive mode:

enter image description here

Code:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 20px;
 }

.navbar {
  background-color: black !important;
}

.navbar .navbar-collapse li{
  text-align: center;
  margin-bottom: 20px;
}

.navbar-nav > li{
  padding-right:30px;
}

.navbar li a {
  text-decoration: none;
  text-transform: uppercase;
  font-size: 70%;
  color: #000;
}

.navbar ul li a {
  position: relative;
  z-index: 1;
  padding: 15px;
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/css2?family=Vollkorn&display=swap" rel="stylesheet">
    <script src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
  </head>
  <body>


    <header>
          <nav class="navbar navbar-expand-lg navbar-dark bg-light">
            <button class="navbar-toggler">
              <span class="navbar-toggler-icon" data-toggle="collapse" data-target="#navbarMenu"></span>
            </button>
            <div class="collapse navbar-collapse justify-content-end" id="navbarMenu">
              <ul class="navbar-nav">
                <li class="nav-item"><a href="#">Home</a></li>
                <li class="nav-item"><a href="#">About me</a></li>
                <li class="nav-item"><a href="#">Projects</a></li>
                <li class="nav-item"><a href="#">Contact me</a></li>
              </ul>
            </div>
          </nav>

    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
  </body>
</html>

Question

Whats a good solution to achieve my desired output?

like image 729
Eduards Avatar asked Dec 19 '25 10:12

Eduards


1 Answers

Add these media queries to the end of your css file and you will get the result you want. I added margin-right: 100px; at your discretion. You yourself can specify the number of pixels you need. And also added padding-right: 0; to remove indentation for mobile devices to better center the menu.

@media (min-width: 992px) {
  .navbar-expand-lg .navbar-nav {
      margin-right: 100px;
  }
}

@media (max-width: 992px) {
  .navbar-nav > li {
      padding-right: 0;
  }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 20px;
 }

.navbar {
  background-color: black !important;
}

.navbar .navbar-collapse li{
  text-align: center;
  margin-bottom: 20px;
}

.navbar-nav > li{
  padding-right:30px;
}

.navbar li a {
  text-decoration: none;
  text-transform: uppercase;
  font-size: 70%;
  color: #000;
}

.navbar ul li a {
  position: relative;
  z-index: 1;
  padding: 15px;
}

@media (min-width: 992px) {
  .navbar-expand-lg .navbar-nav {
      margin-right: 100px;
  }
}

@media (max-width: 992px) {
  .navbar-nav > li {
      padding-right: 0;
  }
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/css2?family=Vollkorn&display=swap" rel="stylesheet">
    <script src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
  </head>
  <body>


    <header>
          <nav class="navbar navbar-expand-lg navbar-dark bg-light">
            <button class="navbar-toggler">
              <span class="navbar-toggler-icon" data-toggle="collapse" data-target="#navbarMenu"></span>
            </button>
            <div class="collapse navbar-collapse justify-content-end" id="navbarMenu">
              <ul class="navbar-nav">
                <li class="nav-item"><a href="#">Home</a></li>
                <li class="nav-item"><a href="#">About me</a></li>
                <li class="nav-item"><a href="#">Projects</a></li>
                <li class="nav-item"><a href="#">Contact me</a></li>
              </ul>
            </div>
          </nav>

    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
  </body>
</html>
like image 124
s.kuznetsov Avatar answered Dec 21 '25 05:12

s.kuznetsov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!