Vidura D
Vidura D

Reputation: 87

Unable to align branding logo, icon and hamburger menu button for mobile devices

I am new to bootstrap so still trying to get my head around it.

What I would like to achieve is to have the branding logo aligned to the left and have the phone icon and hamburger nav icon to the right. It should look like this:

not aligning correctly for mobile view

The code that I am 'incorrectly' using can be seen here:

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

As you can see, currently on smartphone view, they are all aligned to the left.

Any help would be greatly appreciated. Thank you.

V

Upvotes: 0

Views: 1038

Answers (4)

Ali Mousavi
Ali Mousavi

Reputation: 153

Ok I changed your html a bit. You can see the working code here: https://www.codeply.com/go/paFQ52qLUK

What you need to do is just to:

  1. make sure that the row is taking up all the width of its parent
  2. change the col-sms to col-auto
  3. remove the ml-auto from the last col

Upvotes: 1

Nandita Sharma
Nandita Sharma

Reputation: 13407

No need of the row-col structure. Just simply use the template provided by bootstrap for creating a navbar, it should work fine, and because you have 2 buttons on the right keep them in a d-flex div.

Updated this section in the code below

<a class="navbar-brand" href="#" style="padding:0px;margin:0;">
    <img src="https://certiport.pearsonvue.com/getattachment/Certifications/ESB/Certification/Learn/NFTE_logo_purple_orange.png?lang=en-US">
  </a>
  <div class="d-flex ml-auto">
    <a style="color:#333;height:92px;width:50px; background-color:#F9D049;text-align:center; padding: 26px 0 0 ; margin:0; line-height:1;" href="tel:000-000-000" class="d-block d-md-none">
      <i class="fas fa-phone fa-2x"></i>
    </a>
    <button style="color:#fff;height:92px;width:50px; background-color:#F47227;border-radius:0; padding: 0; margin:0;" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false"
      aria-label="Toggle navigation">
            <i class="fas fa-bars  fa-2x"></i>
        </button>
  </div>

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<nav class="navbar navbar-expand-md navbar-light bg-light fixed-top" style="padding:0px;margin:0;">
  <a class="navbar-brand" href="#" style="padding:0px;margin:0;">
    <img src="https://certiport.pearsonvue.com/getattachment/Certifications/ESB/Certification/Learn/NFTE_logo_purple_orange.png?lang=en-US">
  </a>
  <div class="d-flex ml-auto">
    <a style="color:#333;height:92px;width:50px; background-color:#F9D049;text-align:center; padding: 26px 0 0 ; margin:0; line-height:1;" href="tel:000-000-000" class="d-block d-md-none">
      <i class="fas fa-phone fa-2x"></i>
    </a>
    <button style="color:#fff;height:92px;width:50px; background-color:#F47227;border-radius:0; padding: 0; margin:0;" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false"
      aria-label="Toggle navigation">
            <i class="fas fa-bars  fa-2x"></i>
        </button>
  </div>
  <div class="collapse navbar-collapse" id="navbarsExampleDefault">
    <ul class="navbar-nav ml-auto">

      <li class="nav-item">
        <a class="nav-link" href="#">About Us</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Our Team</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Contact Us</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Affiliations</a>
      </li>
    </ul>
  </div>
</nav>

<main role="main" class="container">
  <div class="starter-template">
    <h1>Bootstrap starter template</h1>
    <p class="lead">Use this document as a way to quickly start any new project.
      <br> All you get is this text and a mostly barebones HTML document.</p>
  </div>
</main>

Upvotes: 1

codeuix
codeuix

Reputation: 1406

Make one parent div inside that div put both the icon use display:flex for the parent div and in row div give width:100% this will work for mobile device too

<nav class="navbar navbar-expand-md navbar-light bg-light fixed-top" style="padding:0px;margin:0;">
       <div class="row no-gutters" style="width: 100%;">
          <div class="col-sm">
             <a class="navbar-brand" href="#" style="padding:0px;margin:0;">
             <img src="https://certiport.pearsonvue.com/getattachment/Certifications/ESB/Certification/Learn/NFTE_logo_purple_orange.png?lang=en-US">
             </a>
          </div>
          <div class="mobile-device" style="display:flex">
             <div class="col-sm ml-auto">
                <a style="color:#333;height:92px;width:50px; background-color:#F9D049;text-align:center;padding:26px 0 0 ;margin:0;line-height:1;" href="tel:000-000-000" class="d-block d-md-none">
                <i class="fas fa-phone fa-2x"></i>
                </a>      
             </div>
             <div class="col-sm ml-auto">
                <button style="color:#fff;height:92px;width:50px; background-color:#F47227;border-radius:0;padding:0;margin:0;" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
                <i class="fas fa-bars  fa-2x"></i>
                </button>
             </div>
          </div>
       </div>
       <div class="collapse navbar-collapse" id="navbarsExampleDefault">
          <ul class="navbar-nav ml-auto">
             <li class="nav-item">
                <a class="nav-link" href="#">About Us</a>
             </li>
             <li class="nav-item">
                <a class="nav-link" href="#">Our Team</a>
             </li>
             <li class="nav-item">
                <a class="nav-link" href="#">Contact Us</a>
             </li>
             <li class="nav-item">
                <a class="nav-link" href="#">Affiliations</a>
             </li>
          </ul>
       </div>
    </nav>
    <main role="main" class="container">
       <div class="starter-template">
          <h1>Bootstrap starter template</h1>
          <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p>
       </div>
    </main>

Upvotes: 0

Xenio Gracias
Xenio Gracias

Reputation: 2758

I have put the icon and hamburger inside a div and added d-flex no-gutters bootstrap classes to it and added below css

.brand-hamburger {
  width: 100%;
}

.brand-hamburger {
  width: 100%;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<nav class="navbar navbar-expand-md navbar-light bg-light fixed-top" style="padding:0px;margin:0;">

  <div class="row no-gutters brand-hamburger">
    <div class="col-sm">
      <a class="navbar-brand" href="#" style="padding:0px;margin:0;">
        <img src="https://certiport.pearsonvue.com/getattachment/Certifications/ESB/Certification/Learn/NFTE_logo_purple_orange.png?lang=en-US">
      </a>
    </div>
    <div class="d-flex no-gutters">
      <div class="col-sm ml-auto">
        <a style="color:#333;height:92px;width:50px; background-color:#F9D049;text-align:center;padding:26px 0 0 ;margin:0;line-height:1;" href="tel:000-000-000" class="d-block d-md-none">
          <i class="fas fa-phone fa-2x"></i>
        </a>
      </div>
      <div class="col-sm ml-auto">
        <button style="color:#fff;height:92px;width:50px; background-color:#F47227;border-radius:0;padding:0;margin:0;" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false"
          aria-label="Toggle navigation">
    				<i class="fas fa-bars  fa-2x"></i>
    			</button>
      </div>
    </div>
  </div>





  <div class="collapse navbar-collapse" id="navbarsExampleDefault">
    <ul class="navbar-nav ml-auto">

      <li class="nav-item">
        <a class="nav-link" href="#">About Us</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Our Team</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Contact Us</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Affiliations</a>
      </li>

    </ul>
  </div>
</nav>

<main role="main" class="container">

  <div class="starter-template">
    <h1>Bootstrap starter template</h1>
    <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p>
  </div>

</main>

Upvotes: 0

Related Questions