Reputation: 36620
Hi guys having trouble with implemting a a sticky navbar in my Angular application.
This is my app component:
<div class="master-wrapper">
<div class="master-container">
<app-online-header></app-online-header>
<div class="sticky">
<app-navigation></app-navigation>
</div>
<div class="background">
<router-outlet></router-outlet>
</div>
</div>
</div>
My goal is to have the <app-navigation>
component sticky. Here is how it looks like:
What I tried so far is in my app-component
CSS
file:
.sticky{
position: sticky;
top: 0;
}
Why doesn't this make my <app-navigation>
component sticky?
Upvotes: 2
Views: 3241
Reputation: 160
The problem is the class is defined in the <div>
tag. The class="sticky"
needs to be defined inside the <nav>
or <div>
tag that's placed inside the <app-navigation>
component
Example:
HTML code:
<nav class="sticky">
<ul class="menu">
<!-- Insert client logo here -->
<li class="css_logo">Monte</li>
<!-- Insert your page navigation here -->
<li class="css_link"><a [routerLink]="['Concept']" [routerLinkActive]="['active']">Concept</a></li>
<li class="css_link"><a [routerLink]="['Fusion']" [routerLinkActive]="['active']">Fusion</a></li>
<li class="css_link"><a [routerLink]="['Home']" [routerLinkActive]="['active']">Home</a></li>
</ul>
</nav>
CSS code:
.sticky {
width: 100%;
height:72px;
margin:0;
left:0;
right:0;
top:0;
background-color: white;
overflow: hidden;
display: block;
position: sticky;
position: -webkit-sticky;
z-index: 5;
}
Angular ts file
<!-- Common site Navigation bar -->
<app-navigation-bar></app-navigation-bar>
<!-- Application's Router sequence -->
<router-outlet></router-outlet>
Upvotes: 1