How do I fix a header at the top of a page in CSS?

How TO - On Scroll Header

Previous Next

Learn how to create a fixed/sticky header on scroll with CSS and JavaScript.

Try it Yourself »

How To Create a Fixed Header on Scroll

Step 1] Add HTML:

Example


My Header


Step 2] Add CSS:

Example

/* Style the header */
.header {
padding: 10px 16px;
background: #555;
color: #f1f1f1;
}

/* Page content */
.content {
padding: 16px;
}

/* The sticky class is added to the header with JS when it reaches its scroll position */
.sticky {
position: fixed;
top: 0;
width: 100%
}

/* Add some top padding to the page content to prevent sudden quick movement [as the header gets a new position at the top of the page [position:fixed and top:0] */
.sticky + .content {
padding-top: 102px;
}
Step 3] Add JavaScript:

Example

// When the user scrolls the page, execute myFunction
window.onscroll = function[] {myFunction[]};

// Get the header
var header = document.getElementById["myHeader"];

// Get the offset position of the navbar
var sticky = header.offsetTop;

// Add the sticky class to the header when you reach its scroll position. Remove "sticky" when you leave the scroll position
function myFunction[] {
if [window.pageYOffset > sticky] {
header.classList.add["sticky"];
} else {
header.classList.remove["sticky"];
}
}
Try it Yourself »

Previous Next

Video liên quan

Chủ Đề