I'm new to bootstrap and I am trying to create a navbar for a zendesk help portal. Zendesk uses their own templating language called Handlebars . Handlebars is a simple templating engine that lets you insert or manipulate content on a page at render-time rather than at design-time (pretty much like Moustache if you are familiar with it).
While all elements in this navbar are aligned to the right, I want only the search bar to be aligned to the left <div class="search-container">
. Is there a bootstrap class that will let me "float left" next to the logo this search container while keeping everything else intact and responsive as before?
<nav class="navbar navbar-expand-lg navbar-light">
<div class="logo">
{{#link 'help_center'}}
<img src="{{settings.logo}}" alt="{{t 'home_page' name=help_center.name}}">
{{/link}}
</div>
<button type="button" class="navbar-toggler second-button" data-toggle="collapse" data-target="#navbarCollapse"
aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<div class="animated-icon2"><span></span><span></span><span></span><span></span></div>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<div class="navbar-nav ml-auto">
<div class="search-container">
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" focusable="false" viewBox="0 0 12 12"
class="search-icon">
<circle cx="4.5" cy="4.5" r="4" fill="none" stroke="currentColor" />
<path stroke="currentColor" stroke-linecap="round" d="M11 11L7.5 7.5" />
</svg>
{{search scoped=settings.scoped_kb_search submit=false}}
</div>
<a href="https://" class="nav-item nav-link">Help Portal</a>
{{#if alternative_locales}}
<div class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">{{current_locale.name}}</a>
<div class="dropdown-menu">
{{#each alternative_locales}}
<a href="{{url}}" class="dropdown-item" dir="{{direction}}" rel="nofollow"
role="menuitem">{{name}}</a>{{/each}}
</div>
</div>{{/if}}
{{#if signed_in}}
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{user_avatar class="user-avatar"}}
{{user_name}}
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a href="#" class="dropdown-item">{{link "my_activities" role="menuitem"}}</a>
<a href="#" class="dropdown-item">{{my_profile role="menuitem"}}</a>
<a href="#" class="dropdown-item password-item">{{change_password role="menuitem"}}</a>
<a href="#" class="dropdown-item">{{link "sign_out" role="menuitem"}}</a>
</div>
</div>
{{else}}
<div class="sign-in-div">
{{#link "sign_in" class="sign-in"}}
{{t 'sign_in'}}
{{/link}}
</div>
{{/if}}
</div>
</div>
</nav>
</div> ```
You have to move your <div class="search-container">
outside the <div class="navbar-nav ml-auto">
, because ml-auto
will force the navbar elements to be aligned on the right. Read more about navbar-nav
's behavior here: https://getbootstrap.com/docs/4.5/components/navbar/#supported-content
For the navbar, it seems to be enough to place this element inside <div class="collapse navbar-collapse" id="navbarCollapse">
.
Your code should afterwards look like this:
<nav class="navbar navbar-expand-lg navbar-light">
<div class="logo">
{{#link 'help_center'}}
<img src="{{settings.logo}}" alt="{{t 'home_page' name=help_center.name}}">
{{/link}}
</div>
<button type="button" class="navbar-toggler second-button" data-toggle="collapse" data-target="#navbarCollapse"
aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<div class="animated-icon2"><span></span><span></span><span></span><span></span></div>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<div class="search-container">
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" focusable="false" viewBox="0 0 12 12"
class="search-icon">
<circle cx="4.5" cy="4.5" r="4" fill="none" stroke="currentColor" />
<path stroke="currentColor" stroke-linecap="round" d="M11 11L7.5 7.5" />
</svg>
{{search scoped=settings.scoped_kb_search submit=false}}
</div>
<div class="navbar-nav ml-auto">
<a href="https://" class="nav-item nav-link">Help Portal</a>
{{#if alternative_locales}}
<div class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">{{current_locale.name}}</a>
<div class="dropdown-menu">
{{#each alternative_locales}}
<a href="{{url}}" class="dropdown-item" dir="{{direction}}" rel="nofollow"
role="menuitem">{{name}}</a>{{/each}}
</div>
</div>{{/if}}
{{#if signed_in}}
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{user_avatar class="user-avatar"}}
{{user_name}}
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a href="#" class="dropdown-item">{{link "my_activities" role="menuitem"}}</a>
<a href="#" class="dropdown-item">{{my_profile role="menuitem"}}</a>
<a href="#" class="dropdown-item password-item">{{change_password role="menuitem"}}</a>
<a href="#" class="dropdown-item">{{link "sign_out" role="menuitem"}}</a>
</div>
</div>
{{else}}
<div class="sign-in-div">
{{#link "sign_in" class="sign-in"}}
{{t 'sign_in'}}
{{/link}}
</div>
{{/if}}
</div>
</div>
</nav>
I also created a running fiddle to visualize the solution:
Showing that the navbar still works:
Good luck!