المعرفة:: CSS الحالة::مؤرشفة المراجع:: Build Responsive Real-World Websites with HTML and CSS /* STICKY NAVIGATION */ .sticky .header { position: fixed; top: 0; bottom: 0; width: 100%; height: 8rem; padding-top: 0; padding-bottom: 0; background-color: rgba(255, 255, 255, 0.97); z-index: 999; box-shadow: 0 1.2rem 3.2rem rgba(0, 0, 0, 0.03); } /* Compensate the header space as it's taken out of the document flow */ /* Applied if sticky class exists in one of section hero parents */ /* So sticky class should be added to body element itself */ .sticky .section-hero { margin-top: 9.6rem; } // Sticky navigation const sectionHeroEl = document.querySelector(".section-hero"); const obs = new IntersectionObserver( function (entries) { const ent = entries[0]; if (!ent.isIntersecting) { document.body.classList.add("sticky"); } else { document.body.classList.remove("sticky"); } }, { // In the viewport root: null, threshold: 0, rootMargin: "-80px", // -height: 8rem; } ); obs.observe(sectionHeroEl); See: , JavaScript Intersection Observer API