Drew Fletcher
Drew Fletcher

Reputation: 41

Angular App: bootstrap navbar doesn't show up on small screen sizes

I am making an angular app (angular 11.2.4 with bootstrap 4.5.3) and the navbar is not rendering properly on screen sizes less than ~580 pixels wide.

along the bar I can click the toggler and 'expand' the collapse region, but still nothing is rendered. This is also what is rendered when the bar is a fixed regular navbar

html:

<nav class="navbar navbar-expand-sm bg-dark fixed-top hidden-sm hidden-xs">
  
    <div class="navbar-collapse collapse" id="navbarSupportedContent">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
          <a class="nav-link text-white" href="#" routerLink="/home">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link text-white" href="#" routerLink="/resume">Resume</a>
        </li>
        <li class="nav-item">
          <a class="nav-link text-white"  href="#" routerLink="/projects">Projects</a>
        </li>
      </ul>

      <ul class="navbar-nav">
        <li class="nav-item active">
            <a class="nav-link" href="https://github.com/">
                <img src="../../assets/github_icon.png" width="30" height="30" class="d-inline-block align-top" alt="">
              </a>
        </li>
      </ul>

    </div>
  </nav>

  <nav class = "navbar visible-xs visible-sm">
    
      <button class="navbar-toggler navbar-toggler-left"
      type="button"
      aria-controls="mobileNavbar"
      aria-expanded="false"
      [attr.aria-expanded]="!isCollapsed" 
      aria-label="Toggle mobile navigation"
      (click)="toggleMenu()"
      >
      <span class="dark-blue-text"><i class="fas fa-bars fa-1x">

      </i></span>
    </button>
    <div class="collapse navbar-collapse" id="mobileNavbar" [ngbCollapse]="isCollapsed">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link text-white" href="#" routerLink="/home">Home</a>
          </li>
          <li class="nav-item">
            <a class="nav-link text-white" href="#" routerLink="/resume">Resume</a>
          </li>
          <li class="nav-item">
            <a class="nav-link text-white"  href="#" routerLink="/projects">Projects</a>
          </li>
        </ul>
      </div>
    </nav>

typescript:


import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-main-navbar',
  templateUrl: './main-navbar.component.html',
  styleUrls: ['./main-navbar.component.css']
})
export class MainNavbarComponent implements OnInit {

  isCollapsed = true;

  constructor() { }

  ngOnInit(): void {
  }

  toggleMenu() 
  {
    this.isCollapsed = !this.isCollapsed;
  }
}

Upvotes: 0

Views: 667

Answers (1)

Zunayed Shahriar
Zunayed Shahriar

Reputation: 2723

Remove hidden-sm hidden-xs from your nav tag's class.

Edit:

Ignore the previous answer. Add bg-dark to your second nav class.

<nav class="navbar bg-dark visible-xs visible-sm">

Working demo at Stackblitz.

Upvotes: 1

Related Questions