This question already has answers here:
Keep background image fixed during scroll using css
(3 answers)
Closed 6 months ago.
I am trying to make a page with a glass morphism effect. I don't want to move a background of the body. I want to move only .container. Is this possible? I already tried background-attachment: fixed but it is not working.
Here the code that I'm using:
body {
display: flex;
height: 100%;
justify-content: center;
align-items: center;
background: #091921;
}
body::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-attachment: fixed;
background: linear-gradient(#e91e63, #ffc107);
clip-path: circle(22% at 30% 20%);
z-index: -1;
}
body::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-attachment: fixed;
background: linear-gradient(#ffffff, #da00ff);
clip-path: circle(20% at 70% 90%);
z-index: -1;
}
.container {
margin: 50px 0;
width: 60%;
padding: 20px 40px;
background-color: rgba(255, 355, 255, 0.2);
backdrop-filter: blur(10px);
color: white;
font-size: 20px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="container">
<h1>Lorem ipsum dolor sit.</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis facilis vero placeat dicta reprehenderit quam soluta, nisi suscipit molestias voluptatibus itaque autem similique, quo ullam sint. Mollitia magnam quos rem veniam sit, nulla repellat
ab saepe fugit, numquam necessitatibus vel qui consequatur unde autem cum repellendus dolorum harum veritatis dolor et natus perferendis dolore culpa. Nostrum veritatis accusamus molestias porro sint veniam officia! Harum eaque corporis aperiam
nobis ea vitae animi consectetur libero sed nisi repellendus voluptatum illum voluptate veniam quisquam ullam, assumenda rerum tempora et ducimus, quod nam officia. Velit, dolores molestiae error laudantium minus consectetur natus vero ducimus esse
voluptatibus delectus nam dolore tempore expedita ad pariatur repellendus rerum fugiat recusandae unde iste omnis repellat. Vero eos ex dolorum explicabo eum placeat rem, unde nobis id veritatis molestias harum beatae enim, obcaecati sed, provident
iusto error minus quis? Tenetur aliquid ipsa illo tempora odio ab. Doloremque laudantium, officia accusantium non autem blanditiis incidunt alias. Debitis at ullam esse nihil! Est, hic quasi! Voluptas rem mollitia dolorum accusamus ipsa non ipsam
odit quis debitis quasi aliquid tempore vel totam porro possimus ullam inventore sunt, in accusantium, maiores natus. Magnam, aut quaerat alias beatae commodi eum autem repellat accusamus esse in corrupti amet maiores dolorem maxime exercitationem
omnis totam natus adipisci suscipit. Rerum maiores, nobis eligendi repudiandae doloremque mollitia deserunt praesentium expedita, odio fugiat quae quas. Laboriosam eaque rem praesentium quam vero fugit debitis, odio sed ad. Doloribus quod saepe
nisi earum sapiente tempore expedita modi perspiciatis cum aut vitae, consequatur, eveniet ducimus totam quis amet, quam beatae? Harum corrupti iure odio perferendis corporis totam eos id autem neque, aut vero at repudiandae soluta quibusdam dolor,
laborum molestias! Excepturi necessitatibus, incidunt saepe id voluptatibus sapiente mollitia, similique nulla in earum dignissimos porro quis beatae, molestiae recusandae eveniet minus cupiditate tempora! Error quo eum qui fugit itaque accusantium
non ullam saepe sunt incidunt quidem quaerat ea eius doloribus possimus totam, tenetur quis mollitia. Porro, cumque vero modi quo architecto ullam commodi aspernatur repudiandae ipsum sunt dolorem neque fugiat vitae a ex nihil vel tenetur laborum
eligendi aut rem. Magnam quidem soluta vero amet expedita. Officiis, laborum eveniet. Nobis, reiciendis natus! Optio, delectus! Voluptates, unde aliquid fuga odio perferendis at nemo qui quidem velit ullam tempora accusantium, molestias voluptatibus
ratione libero laudantium illo, aperiam dolorum earum exercitationem quae neque voluptate! Nihil explicabo sed sequi provident neque repellat quia quasi, doloremque tempore repellendus.</p>
</div>
</body>
</html>
change position: absolute; to position: fixed; for your pseudo-elements. That will align the background to the top of the viewport instead of the body document.
body {
display: flex;
height: 100%;
justify-content: center;
align-items: center;
background: #091921;
}
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(#e91e63, #ffc107);
clip-path: circle(22% at 30% 20%);
z-index: -1;
}
body::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(#ffffff, #da00ff);
clip-path: circle(20% at 70% 90%);
z-index: -1;
}
.container {
margin: 50px 0;
width: 60%;
padding: 20px 40px;
background-color: rgba(255, 355, 255, 0.2);
backdrop-filter: blur(10px);
color: white;
font-size: 20px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="container">
<h1>Lorem ipsum dolor sit.</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis facilis vero placeat dicta reprehenderit quam soluta, nisi suscipit molestias voluptatibus itaque autem similique, quo ullam sint. Mollitia magnam quos rem veniam sit, nulla repellat
ab saepe fugit, numquam necessitatibus vel qui consequatur unde autem cum repellendus dolorum harum veritatis dolor et natus perferendis dolore culpa. Nostrum veritatis accusamus molestias porro sint veniam officia! Harum eaque corporis aperiam
nobis ea vitae animi consectetur libero sed nisi repellendus voluptatum illum voluptate veniam quisquam ullam, assumenda rerum tempora et ducimus, quod nam officia. Velit, dolores molestiae error laudantium minus consectetur natus vero ducimus esse
voluptatibus delectus nam dolore tempore expedita ad pariatur repellendus rerum fugiat recusandae unde iste omnis repellat. Vero eos ex dolorum explicabo eum placeat rem, unde nobis id veritatis molestias harum beatae enim, obcaecati sed, provident
iusto error minus quis? Tenetur aliquid ipsa illo tempora odio ab. Doloremque laudantium, officia accusantium non autem blanditiis incidunt alias. Debitis at ullam esse nihil! Est, hic quasi! Voluptas rem mollitia dolorum accusamus ipsa non ipsam
odit quis debitis quasi aliquid tempore vel totam porro possimus ullam inventore sunt, in accusantium, maiores natus. Magnam, aut quaerat alias beatae commodi eum autem repellat accusamus esse in corrupti amet maiores dolorem maxime exercitationem
omnis totam natus adipisci suscipit. Rerum maiores, nobis eligendi repudiandae doloremque mollitia deserunt praesentium expedita, odio fugiat quae quas. Laboriosam eaque rem praesentium quam vero fugit debitis, odio sed ad. Doloribus quod saepe
nisi earum sapiente tempore expedita modi perspiciatis cum aut vitae, consequatur, eveniet ducimus totam quis amet, quam beatae? Harum corrupti iure odio perferendis corporis totam eos id autem neque, aut vero at repudiandae soluta quibusdam dolor,
laborum molestias! Excepturi necessitatibus, incidunt saepe id voluptatibus sapiente mollitia, similique nulla in earum dignissimos porro quis beatae, molestiae recusandae eveniet minus cupiditate tempora! Error quo eum qui fugit itaque accusantium
non ullam saepe sunt incidunt quidem quaerat ea eius doloribus possimus totam, tenetur quis mollitia. Porro, cumque vero modi quo architecto ullam commodi aspernatur repudiandae ipsum sunt dolorem neque fugiat vitae a ex nihil vel tenetur laborum
eligendi aut rem. Magnam quidem soluta vero amet expedita. Officiis, laborum eveniet. Nobis, reiciendis natus! Optio, delectus! Voluptates, unde aliquid fuga odio perferendis at nemo qui quidem velit ullam tempora accusantium, molestias voluptatibus
ratione libero laudantium illo, aperiam dolorum earum exercitationem quae neque voluptate! Nihil explicabo sed sequi provident neque repellat quia quasi, doloremque tempore repellendus.</p>
</div>
</body>
</html>
position: sticky is not working in my code
I have tried different properties but nothing seems to work
codepen: https://codepen.io/iabzeet/pen/qBmGyLb
help me solve this problem
#title{
font-family: 'Inknut Antiqua', sans-serif;
color: rgb(243, 30, 112);
font-size: 12px;
position: relative;
top: 24px;
display: flex;
flex-direction: row;
}
.logo{
width: 4%;
position: relative;
top: 20px;
display: flex;
flex-direction: row;
}
.top-container {
padding: 60px 30px 30px 30px;
margin: -80px -6px 0px -30px;
background-color: #f1f1f1;
display: flex;
justify-content: center;
position: relative;
background-image: linear-gradient(-45deg,blue,white,yellow);
}
body{
box-sizing: border-box;
}
#header-img{
width: 3%;
padding: 0;
display: flex;
position: relative;
top: 2px;
}
nav {
position: sticky;
top: 0;
}
ul {
list-style-type: none;
margin: 0;
padding: 20%;
background-color: #333;
width: 100%;
display: flex;
justify-content: center;
overflow: hidden;
}
li {
list-style: none;
margin-right: 70px;
font-size: 25px;
font-weight: bold;
}
li a {
display: block;
color: white;
text-align: center;
padding: 3px 10px;
text-decoration: none;
}
li a:hover {
background-color: #04AA6D;
border-radius: 5px;
}
ul {
list-style-type: none;
margin: -48px -6px 0px -10px;
padding: 9px;
display: flex;
flex-direction: row;
}
#cover{
margin: 0.5px -10px 0px -10px;
position: fixed;
top: 0px;
display: grid;
width: 100%;
margin-right: -98px;
height: 550px;
object-fit: cover;
align-self: center;
z-index: -1;
opacity: 0.8;
}
.container {
height: 100%;
padding: 0.01em 16px;
padding-top: 0.01em;
padding-right: 0px;
padding-bottom: 0.01em;
padding-left: 0px;
display: grid;
position: relative;
justify-items: center;
}
#sml{
position: absolute;
display: grid;
color: white;
transform: translate(0px, 150px);
}
#text{
position: absolute;
display: grid;
color: whitesmoke;
transform: translate(0px, 150px);
z-index: 2;
font-size: 50px;
}
.policies{
margin-top: 0px;
background-image: whitesmoke;
display: flex;
position: relative;
}
#prod{
background-image: url("https://images.unsplash.com/photo-1524230572899-a752b3835840?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1952&q=80");
margin-right: -7px;
margin-left: -7px;
position: absolute;
top: 390px;
font-size: large;
}
/* .centered{
position: absolute;
color: rgb(228, 56, 56);
top: 30%;
left: 50%;
transform: translate(-50%,-50%);
} */
<!DOCTYPE html>
<html>
<body>
<head>
<title>Giovanni's Guitars</title>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inknut+Antiqua:wght#300&display=swap"
type='text/css'>
</head>
<div class="top-container">
<img class="logo" src="logo1.svg" alt="a logo">
<div id="title">
<h1>Giovanni's Guitars</h1>
</div>
</div>
<header id="header">
<img id="header-img" src="logo2.svg" alt="a logo">
<nav id="nav-bar">
<ul>
<li><a class="nav-link" href="#features">Features</a></li>
<li><a class="nav-link" href="#how-it-works">How It Works</a></li>
<li><a class="nav-link" href="#pricing">Pricing</a></li>
</ul>
</nav>
</header>
<div class="container">
<video autoplay muted loop id="cover">
<source src="https://cdn.videvo.net/videvo_files/video/free/2021-05/small_watermarked/210512_01_Music_4k_009_preview.webm" type="video/mp4">
</video>
<p id="sml">Since 1961</p>
<div id="text">
<h4>Guitars and Basses.</h4>
</div>
</div>
<section class="policies">
<h5 id="prod">Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel sint fugiat placeat mollitia necessitatibus enim quae at illo rem! Fuga tempore dicta ut repudiandae quis quaerat facere sit odit! Fugiat perspiciatis, accusamus voluptate itaque incidunt reprehenderit perferendis nemo. Consequuntur vero ipsum modi excepturi facilis id nemo, porro animi beatae est recusandae officia, repudiandae velit necessitatibus possimus nam maiores quo corporis laboriosam obcaecati repellat sit! Explicabo eveniet fugiat iste, minima facere ipsum aliquam fuga dignissimos amet aperiam atque excepturi, adipisci distinctio minus laudantium. Provident obcaecati tenetur rerum! Eveniet quo, nulla debitis, reiciendis hic fugiat perferendis vel consequatur eligendi amet assumenda totam? Ullam ipsa illum fugit, dolor est hic ex sequi laudantium odio consectetur vitae nihil unde, quibusdam necessitatibus. Quae placeat dolorum eos suscipit! Quo necessitatibus in ab delectus doloremque et ipsum dolorem, quod, accusantium voluptas, obcaecati possimus. Dolores dolor accusamus ex aspernatur! Porro quo laboriosam est blanditiis incidunt, quis accusantium necessitatibus distinctio dolorem enim ipsam accusamus ut odit officia rerum, praesentium ab voluptas fuga explicabo fugit dolorum ea cum animi in? Iusto veniam corporis doloremque, necessitatibus ipsam dolore! Quam sequi reprehenderit ex fugiat soluta facilis illum laudantium omnis assumenda quisquam, incidunt, deserunt officia nostrum perspiciatis. Labore veniam reiciendis quia eos veritatis sequi velit numquam unde molestias, adipisci, eligendi quisquam, quae quo modi porro harum commodi consequatur aliquid nobis. Natus quidem voluptate ratione fugiat, dolores quo culpa fuga fugit. Aperiam dolore, velit ullam repellat unde delectus eos aliquid, asperiores itaque impedit in sapiente, quasi facilis. Libero iusto cumque esse rerum quis, suscipit voluptatibus nihil soluta facere magni, nesciunt praesentium dolore consectetur et sapiente corrupti reprehenderit fuga facilis animi odio asperiores quod tempore? Possimus numquam mollitia nemo amet quod ut facere maxime facilis cupiditate optio, cum quisquam culpa accusantium harum dicta iste autem. Illo provident minima dolorum excepturi culpa perferendis laboriosam, fugiat reprehenderit magnam adipisci. Minus cumque magni harum! Minus earum aliquam porro explicabo fugiat fuga ipsa aut hic autem rerum ad provident corrupti, repellendus quam assumenda repudiandae? Quos inventore nam aliquam fugit totam modi fugiat asperiores cumque cum reprehenderit. Laborum iusto culpa facere velit inventore aperiam quia nisi, amet dolorem autem possimus explicabo enim vel dolore. Aut iusto amet consequatur saepe velit aliquam nihil nisi, quo iure veniam doloribus ducimus! Adipisci quisquam alias nisi eveniet! Repudiandae officia perspiciatis, neque accusantium cum suscipit fuga alias explicabo, corporis facere voluptatem assumenda fugiat incidunt dignissimos dicta ex tenetur magni sint ipsam ipsum. Provident suscipit quod asperiores labore esse sapiente nesciunt, iusto blanditiis aut distinctio sint rerum optio. Distinctio aspernatur eum natus assumenda! Molestias omnis fuga natus vitae eius ea, eligendi odit magni laboriosam id quis reprehenderit aspernatur expedita sunt. Ex praesentium facilis at, hic minus voluptatem laborum eaque, voluptatum ipsa incidunt tempora. Tempora vel dignissimos aspernatur rerum optio officia excepturi delectus, commodi ex itaque ab velit eaque pariatur sapiente placeat reprehenderit earum ipsum necessitatibus ullam! Hic maxime assumenda provident praesentium animi corrupti laboriosam dolores explicabo voluptas iure, quasi error dolore doloremque voluptatem molestias et accusamus officia id reprehenderit repellat quia ipsam, quo repudiandae. At, repudiandae aut! Itaque rerum natus nulla aperiam veniam et fugit ipsa, at reiciendis eos consectetur unde officia, impedit earum facere placeat nemo praesentium quos deserunt temporibus, nesciunt doloribus culpa ad? Eius repellat vel fugit, labore reprehenderit nesciunt tenetur maxime debitis tempore veniam, non et quibusdam deleniti laborum explicabo! Architecto quo perferendis doloribus ut magnam inventore alias temporibus voluptatem qui ratione neque itaque ex est atque, debitis quod voluptates error dolorum sapiente excepturi magni. Quis modi molestiae laborum magni odio maxime laudantium id sed labore enim facere est veritatis distinctio, quos asperiores minus delectus ratione earum ipsum a quo? Atque aliquid molestiae repellat veritatis corporis optio voluptas, sunt impedit eum nobis laboriosam expedita magni sed doloribus consectetur, quos ratione maxime saepe! Sapiente ea eligendi libero alias laborum voluptatem repellat consequuntur mollitia perspiciatis non dolorum, quas et repellendus. Repellat, doloribus alias quas rerum eveniet quo velit ullam dolorem quidem nesciunt ipsum cum exercitationem magni numquam provident neque nemo odio perferendis, sapiente ipsam sunt.Lorem ipsum dolor sit amet consectetur, adipisicing elit. Vitae, minima. Dolore quod quam similique, odio facere necessitatibus quas officia libero non eveniet sit ipsum consectetur sunt distinctio omnis dolor, doloremque quaerat, labore quia fugiat porro facilis inventore! Nulla magnam labore assumenda laboriosam incidunt nisi dignissimos maxime repudiandae, maiores ipsa quod eligendi, at nesciunt quos. Commodi vitae blanditiis ratione assumenda. Voluptatem placeat provident illum officia fugit sequi vero nisi quam. Ipsum rerum eius ratione ea asperiores possimus praesentium commodi fuga, minima eum laudantium suscipit nostrum eveniet perferendis deserunt laboriosam blanditiis neque, alias, voluptatem eligendi dolorum vitae quae! Aut amet aliquid libero pariatur, blanditiis harum atque. Necessitatibus, iure? Odio quae magnam aliquid incidunt officia error perspiciatis illum voluptatum hic? Quas alias nemo accusantium temporibus error? Provident fuga fugiat eius enim totam soluta saepe beatae accusantium asperiores sunt nesciunt ipsa, eaque dolorum et perspiciatis dignissimos sequi? Adipisci dolorem doloremque facere pariatur inventore fuga cupiditate vel quidem enim a quia, ab odio, eveniet dignissimos dolores aliquid tenetur autem, quis nam quibusdam. Vel, quam excepturi. Fugit maxime voluptatum nam maiores delectus, quo illo consequatur aliquid dolorem excepturi quia sit laudantium quam deserunt numquam adipisci voluptatem eveniet voluptates, sed veniam rem reprehenderit corporis? Blanditiis quod, aut consequuntur commodi nisi, cupiditate dolor nihil aperiam deserunt quaerat molestiae quis nesciunt, laborum unde incidunt culpa! Possimus commodi impedit ullam eius aut veritatis expedita voluptatum nam deserunt ipsa, eum consequatur iusto doloribus enim voluptas labore ut nobis obcaecati illo perspiciatis quam similique provident. Culpa, quos sint eveniet eaque sequi doloremque mollitia nesciunt alias maiores debitis natus soluta. Explicabo dolorum ipsum dolores quaerat doloribus ad commodi nulla cupiditate doloremque. Quas iusto velit pariatur voluptatibus labore? Assumenda, cumque! Dicta molestias, harum officiis aperiam velit temporibus optio obcaecati nemo sint quam debitis nostrum. Esse, dolor. Excepturi provident ea ab, quas fugiat, dolores magni sapiente ipsum, accusantium commodi ex itaque enim! Beatae odio ipsa quisquam enim eius expedita obcaecati doloribus libero illum minima dolor asperiores accusantium, saepe suscipit facilis consequatur laboriosam, optio nemo cupiditate commodi necessitatibus aperiam. Enim perferendis ullam cum beatae soluta quas aspernatur labore itaque veniam delectus dolor debitis, voluptatibus veritatis deserunt nihil blanditiis velit ex obcaecati necessitatibus officiis minima omnis odit. Explicabo est consequuntur, ea nemo asperiores placeat nisi cum fugiat reiciendis repudiandae unde ipsum, distinctio nesciunt eos eligendi. Quo provident atque aperiam nemo numquam quaerat aliquid! Quibusdam culpa obcaecati quaerat excepturi veniam! Ut aliquam dolorum vitae praesentium reprehenderit? Unde hic consequatur officia, amet doloremque expedita! Voluptas accusamus animi ipsum quisquam atque et, ducimus est sequi quos quibusdam, nulla omnis, magnam debitis molestiae sit eius soluta impedit iusto esse voluptatem minus fugiat dolor provident? Adipisci ipsam eos, id ad accusamus voluptates accusantium maiores quas quos nobis, optio culpa assumenda similique voluptatum rem dolorum veniam doloremque ducimus quasi sit. Quos blanditiis natus in nisi sint illo unde inventore repudiandae, beatae eius ut vero ex at veritatis dolor itaque obcaecati adipisci. Itaque beatae omnis tempora et eos debitis, amet incidunt consequuntur aut aliquid, porro distinctio expedita repellat tempore. Similique iste dolores excepturi esse laborum ad, asperiores voluptate. Cum harum aliquid alias qui perferendis magnam maiores eligendi expedita et sapiente quibusdam animi unde minus, mollitia nihil repellat delectus cupiditate, architecto eveniet! Modi iusto vero molestiae laudantium, corporis optio a vel perspiciatis quisquam alias maiores ratione, ea ipsam id quam dolorem quis consequuntur. Excepturi at explicabo doloremque asperiores cupiditate? Cum sunt dolorem similique eveniet eligendi, obcaecati nesciunt vel perspiciatis delectus magnam, illum doloribus aut amet ipsam veritatis laboriosam quidem alias illo saepe rerum! Et dicta quo tempore eos dolore? Iste hic recusandae, blanditiis cumque veniam quas architecto. Repudiandae aliquam necessitatibus magni rerum quisquam eum atque dolorum placeat dignissimos. A qui cumque voluptates sint optio voluptatibus vitae harum tenetur reiciendis id eos quidem tempore laborum in error obcaecati odit ex et ratione, eaque assumenda aut eius! Impedit, quis. Nulla inventore neque omnis qui eveniet molestias eius sint vel voluptas! Tempora, animi? Sequi veniam iure quibusdam repellat, dolorum, id earum accusamus reiciendis at possimus adipisci a similique?</h5>
</section>
</body>
</html>
Reference: https://www.w3schools.com/howto/howto_js_navbar_sticky.asp
Working Demo: https://codepen.io/shalinimandal/pen/dyWEgpg
Add the following CSS in your code:
nav {
z-index: 10;
}
.sticky {
position: fixed;
top: 50px;
width: 100%;
}
Add this Javascript code to add sticky class on scroll
window.onscroll = function() {myFunction()};
// Get the navbar
var navbar = document.getElementById("nav-bar");
// Get the offset position of the navbar
var sticky = navbar.offsetTop;
// Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}
You can try to remove position: fixed from #cover and position: absolute from #prod
#title{
font-family: 'Inknut Antiqua', sans-serif;
color: rgb(243, 30, 112);
font-size: 12px;
position: relative;
top: 24px;
display: flex;
flex-direction: row;
}
.logo{
width: 4%;
position: relative;
top: 20px;
display: flex;
flex-direction: row;
}
.top-container {
padding: 60px 30px 30px 30px;
margin: -80px -6px 0px -30px;
background-color: #f1f1f1;
display: flex;
justify-content: center;
position: relative;
background-image: linear-gradient(-45deg,blue,white,yellow);
}
body{
box-sizing: border-box;
}
body, header, .container {
display:initial;
}
#header-img{
width: 3%;
padding: 0;
display: flex;
position: relative;
top: 2px;
}
nav {
position: sticky;
top: 0;
position: -webkit-sticky;
z-index: 10;
}
ul {
list-style-type: none;
margin: 0;
padding: 20%;
background-color: #333;
width: 100%;
display: flex;
justify-content: center;
overflow: hidden;
}
li {
list-style: none;
margin-right: 70px;
font-size: 25px;
font-weight: bold;
}
li a {
display: block;
color: white;
text-align: center;
padding: 3px 10px;
text-decoration: none;
}
li a:hover {
background-color: #04AA6D;
border-radius: 5px;
}
ul {
list-style-type: none;
margin: -48px -6px 0px -10px;
padding: 9px;
display: flex;
flex-direction: row;
}
#cover{
margin: 0.5px -10px 0px -10px;
/*position: fixed;*/
top: 0px;
display: grid;
width: 100%;
margin-right: -98px;
height: 550px;
object-fit: cover;
align-self: center;
z-index: -1;
opacity: 0.8;
}
.container {
height: 100%;
padding: 0.01em 16px;
padding-top: 0.01em;
padding-right: 0px;
padding-bottom: 0.01em;
padding-left: 0px;
display: grid;
position: relative;
justify-items: center;
}
#sml{
position: absolute;
display: grid;
color: white;
transform: translate(0px, 150px);
}
#text{
position: absolute;
display: grid;
color: whitesmoke;
transform: translate(0px, 150px);
z-index: 2;
font-size: 50px;
}
.policies{
margin-top: 0px;
background-image: whitesmoke;
display: flex;
position: relative;
}
#prod{
background-image: url("https://images.unsplash.com/photo-1524230572899-a752b3835840?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1952&q=80");
margin-right: -7px;
margin-left: -7px;
/*position: absolute;*/
top: 390px;
font-size: large;
}
/* .centered{
position: absolute;
color: rgb(228, 56, 56);
top: 30%;
left: 50%;
transform: translate(-50%,-50%);
} */
<body>
<div class="top-container">
<img class="logo" src="logo1.svg" alt="a logo">
<div id="title">
<h1>Giovanni's Guitars</h1>
</div>
</div>
<header id="header">
<img id="header-img" src="logo2.svg" alt="a logo">
<nav id="nav-bar">
<ul>
<li><a class="nav-link" href="#features">Features</a></li>
<li><a class="nav-link" href="#how-it-works">How It Works</a></li>
<li><a class="nav-link" href="#pricing">Pricing</a></li>
</ul>
</nav>
</header>
<div class="container">
<video autoplay muted loop id="cover">
<source src="https://cdn.videvo.net/videvo_files/video/free/2021-05/small_watermarked/210512_01_Music_4k_009_preview.webm" type="video/mp4">
</video>
<p id="sml">Since 1961</p>
<div id="text">
<h4>Guitars and Basses.</h4>
</div>
</div>
<section class="policies">
<h5 id="prod">Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel sint fugiat placeat mollitia necessitatibus enim quae at illo rem! Fuga tempore dicta ut repudiandae quis quaerat facere sit odit! Fugiat perspiciatis, accusamus voluptate itaque incidunt reprehenderit perferendis nemo. Consequuntur vero ipsum modi excepturi facilis id nemo, porro animi beatae est recusandae officia, repudiandae velit necessitatibus possimus nam maiores quo corporis laboriosam obcaecati repellat sit! Explicabo eveniet fugiat iste, minima facere ipsum aliquam fuga dignissimos amet aperiam atque excepturi, adipisci distinctio minus laudantium. Provident obcaecati tenetur rerum! Eveniet quo, nulla debitis, reiciendis hic fugiat perferendis vel consequatur eligendi amet assumenda totam? Ullam ipsa illum fugit, dolor est hic ex sequi laudantium odio consectetur vitae nihil unde, quibusdam necessitatibus. Quae placeat dolorum eos suscipit! Quo necessitatibus in ab delectus doloremque et ipsum dolorem, quod, accusantium voluptas, obcaecati possimus. Dolores dolor accusamus ex aspernatur! Porro quo laboriosam est blanditiis incidunt, quis accusantium necessitatibus distinctio dolorem enim ipsam accusamus ut odit officia rerum, praesentium ab voluptas fuga explicabo fugit dolorum ea cum animi in? Iusto veniam corporis doloremque, necessitatibus ipsam dolore! Quam sequi reprehenderit ex fugiat soluta facilis illum laudantium omnis assumenda quisquam, incidunt, deserunt officia nostrum perspiciatis. Labore veniam reiciendis quia eos veritatis sequi velit numquam unde molestias, adipisci, eligendi quisquam, quae quo modi porro harum commodi consequatur aliquid nobis. Natus quidem voluptate ratione fugiat, dolores quo culpa fuga fugit. Aperiam dolore, velit ullam repellat unde delectus eos aliquid, asperiores itaque impedit in sapiente, quasi facilis. Libero iusto cumque esse rerum quis, suscipit voluptatibus nihil soluta facere magni, nesciunt praesentium dolore consectetur et sapiente corrupti reprehenderit fuga facilis animi odio
</h5>
</section>
</body>
I think position: sticky doesn't work the way you think it does. The element with the position: sticky will only be "stuck" as long as its parent is visible. In your case nav parent is header and header has roughly the same height than nav.
In other words if you want an element to stick it needs to be the child of the element you're scrolling into.
The problem in your case is that so many elements are positioned with absolute or fixed at the end your body has the same height as the header wich means no overflow and no "stickiness"
My advise would be to start over if possible, avoid position: absolute or position: fixed for the layout (I usually recommend display: grid but when I see the final result display: block should do) and apply position: sticky to the header
As I said in comment of your question:
Sticky positioning is a hybrid of relative and fixed positioning. The element is treated as relative positioned until it crosses a specified threshold, at which point it is treated as fixed positioned. Source Mozilla
It does solve entirely your problem:
First I took out the nav from the header to make the position:sticky work because it wont work if it is not directly under body in this case.
Second I just commented your position:fixed on your #cover to show where that it can work otherwise it will always cancel your sticky as per documentation
Third I added z-index:1000; /* ADDED */ on your nav
Fourth comment postion on .policies and #prod
Now you just need to align correctly your video, as it seems to have a lot of different margin for no reason
DEMO:
#title{
font-family: 'Inknut Antiqua', sans-serif;
color: rgb(243, 30, 112);
font-size: 12px;
position: relative;
top: 24px;
display: flex;
flex-direction: row;
}
.logo{
width: 4%;
position: relative;
top: 20px;
display: flex;
flex-direction: row;
}
.top-container {
padding: 60px 30px 30px 30px;
margin: -80px -6px 0px -30px;
background-color: #f1f1f1;
display: flex;
justify-content: center;
position: relative;
background-image: linear-gradient(-45deg,blue,white,yellow);
}
body{
box-sizing: border-box;
}
#header-img{
width: 3%;
padding: 0;
display: flex;
position: relative;
top: 2px;
}
nav {
position: sticky;
top: 0;
z-index:1000; /* ADDED */
}
ul {
list-style-type: none;
margin: 0;
padding: 20%;
background-color: #333;
width: 100%;
display: flex;
justify-content: center;
overflow: hidden;
}
li {
list-style: none;
margin-right: 70px;
font-size: 25px;
font-weight: bold;
}
li a {
display: block;
color: white;
text-align: center;
padding: 3px 10px;
text-decoration: none;
}
li a:hover {
background-color: #04AA6D;
border-radius: 5px;
}
ul {
list-style-type: none;
margin: -48px -6px 0px -10px;
padding: 9px;
display: flex;
flex-direction: row;
}
#cover{
margin: 0.5px -10px 0px -10px;
/*position: fixed;*/
top: 0px;
display: grid;
width: 100%;
margin-right: -98px;
height: 550px;
object-fit: cover;
align-self: center;
z-index: -1;
opacity: 0.8;
}
.container {
height: 100%;
padding: 0.01em 16px;
padding-top: 0.01em;
padding-right: 0px;
padding-bottom: 0.01em;
padding-left: 0px;
display: grid;
position: relative;
justify-items: center;
}
#sml{
position: absolute;
display: grid;
color: white;
transform: translate(0px, 150px);
}
#text{
position: absolute;
display: grid;
color: whitesmoke;
transform: translate(0px, 150px);
z-index: 2;
font-size: 50px;
}
.policies{
margin-top: 0px;
background-image: whitesmoke;
display: flex;
/*position: relative;*/
}
#prod{
background-image: url("https://images.unsplash.com/photo-1524230572899-a752b3835840?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1952&q=80");
margin-right: -7px;
margin-left: -7px;
/*position: absolute;*/
top: 390px;
font-size: large;
}
/* .centered{
position: absolute;
color: rgb(228, 56, 56);
top: 30%;
left: 50%;
transform: translate(-50%,-50%);
} */
<!DOCTYPE html>
<html>
<body>
<head>
<title>Giovanni's Guitars</title>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inknut+Antiqua:wght#300&display=swap"
type='text/css'>
</head>
<div class="top-container">
<img class="logo" src="logo1.svg" alt="a logo">
<div id="title">
<h1>Giovanni's Guitars</h1>
</div>
</div>
<header id="header">
<img id="header-img" src="logo2.svg" alt="a logo">
</header>
<nav id="nav-bar">
<ul>
<li><a class="nav-link" href="#features">Features</a></li>
<li><a class="nav-link" href="#how-it-works">How It Works</a></li>
<li><a class="nav-link" href="#pricing">Pricing</a></li>
</ul>
</nav>
<div class="container">
<video autoplay muted loop id="cover">
<source src="https://cdn.videvo.net/videvo_files/video/free/2021-05/small_watermarked/210512_01_Music_4k_009_preview.webm" type="video/mp4">
</video>
<p id="sml">Since 1961</p>
<div id="text">
<h4>Guitars and Basses.</h4>
</div>
</div>
<section class="policies">
<h5 id="prod">Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel sint fugiat placeat mollitia necessitatibus enim quae at illo rem! Fuga tempore dicta ut repudiandae quis quaerat facere sit odit! Fugiat perspiciatis, accusamus voluptate itaque incidunt reprehenderit perferendis nemo. Consequuntur vero ipsum modi excepturi facilis id nemo, porro animi beatae est recusandae officia, repudiandae velit necessitatibus possimus nam maiores quo corporis laboriosam obcaecati repellat sit! Explicabo eveniet fugiat iste, minima facere ipsum aliquam fuga dignissimos amet aperiam atque excepturi, adipisci distinctio minus laudantium. Provident obcaecati tenetur rerum! Eveniet quo, nulla debitis, reiciendis hic fugiat perferendis vel consequatur eligendi amet assumenda totam? Ullam ipsa illum fugit, dolor est hic ex sequi laudantium odio consectetur vitae nihil unde, quibusdam necessitatibus. Quae placeat dolorum eos suscipit! Quo necessitatibus in ab delectus doloremque et ipsum dolorem, quod, accusantium voluptas, obcaecati possimus. Dolores dolor accusamus ex aspernatur! Porro quo laboriosam est blanditiis incidunt, quis accusantium necessitatibus distinctio dolorem enim ipsam accusamus ut odit officia rerum, praesentium ab voluptas fuga explicabo fugit dolorum ea cum animi in? Iusto veniam corporis doloremque, necessitatibus ipsam dolore! Quam sequi reprehenderit ex fugiat soluta facilis illum laudantium omnis assumenda quisquam, incidunt, deserunt officia nostrum perspiciatis. Labore veniam reiciendis quia eos veritatis sequi velit numquam unde molestias, adipisci, eligendi quisquam, quae quo modi porro harum commodi consequatur aliquid nobis. Natus quidem voluptate ratione fugiat, dolores quo culpa fuga fugit. Aperiam dolore, velit ullam repellat unde delectus eos aliquid, asperiores itaque impedit in sapiente, quasi facilis. Libero iusto cumque esse rerum quis, suscipit voluptatibus nihil soluta facere magni, nesciunt praesentium dolore consectetur et sapiente corrupti reprehenderit fuga facilis animi odio asperiores quod tempore? Possimus numquam mollitia nemo amet quod ut facere maxime facilis cupiditate optio, cum quisquam culpa accusantium harum dicta iste autem. Illo provident minima dolorum excepturi culpa perferendis laboriosam, fugiat reprehenderit magnam adipisci. Minus cumque magni harum! Minus earum aliquam porro explicabo fugiat fuga ipsa aut hic autem rerum ad provident corrupti, repellendus quam assumenda repudiandae? Quos inventore nam aliquam fugit totam modi fugiat asperiores cumque cum reprehenderit. Laborum iusto culpa facere velit inventore aperiam quia nisi, amet dolorem autem possimus explicabo enim vel dolore. Aut iusto amet consequatur saepe velit aliquam nihil nisi, quo iure veniam doloribus ducimus! Adipisci quisquam alias nisi eveniet! Repudiandae officia perspiciatis, neque accusantium cum suscipit fuga alias explicabo, corporis facere voluptatem assumenda fugiat incidunt dignissimos dicta ex tenetur magni sint ipsam ipsum. Provident suscipit quod asperiores labore esse sapiente nesciunt, iusto blanditiis aut distinctio sint rerum optio. Distinctio aspernatur eum natus assumenda! Molestias omnis fuga natus vitae eius ea, eligendi odit magni laboriosam id quis reprehenderit aspernatur expedita sunt. Ex praesentium facilis at, hic minus voluptatem laborum eaque, voluptatum ipsa incidunt tempora. Tempora vel dignissimos aspernatur rerum optio officia excepturi delectus, commodi ex itaque ab velit eaque pariatur sapiente placeat reprehenderit earum ipsum necessitatibus ullam! Hic maxime assumenda provident praesentium animi corrupti laboriosam dolores explicabo voluptas iure, quasi error dolore doloremque voluptatem molestias et accusamus officia id reprehenderit repellat quia ipsam, quo repudiandae. At, repudiandae aut! Itaque rerum natus nulla aperiam veniam et fugit ipsa, at reiciendis eos consectetur unde officia, impedit earum facere placeat nemo praesentium quos deserunt temporibus, nesciunt doloribus culpa ad? Eius repellat vel fugit, labore reprehenderit nesciunt tenetur maxime debitis tempore veniam, non et quibusdam deleniti laborum explicabo! Architecto quo perferendis doloribus ut magnam inventore alias temporibus voluptatem qui ratione neque itaque ex est atque, debitis quod voluptates error dolorum sapiente excepturi magni. Quis modi molestiae laborum magni odio maxime laudantium id sed labore enim facere est veritatis distinctio, quos asperiores minus delectus ratione earum ipsum a quo? Atque aliquid molestiae repellat veritatis corporis optio voluptas, sunt impedit eum nobis laboriosam expedita magni sed doloribus consectetur, quos ratione maxime saepe! Sapiente ea eligendi libero alias laborum voluptatem repellat consequuntur mollitia perspiciatis non dolorum, quas et repellendus. Repellat, doloribus alias quas rerum eveniet quo velit ullam dolorem quidem nesciunt ipsum cum exercitationem magni numquam provident neque nemo odio perferendis, sapiente ipsam sunt.Lorem ipsum dolor sit amet consectetur, adipisicing elit. Vitae, minima. Dolore quod quam similique, odio facere necessitatibus quas officia libero non eveniet sit ipsum consectetur sunt distinctio omnis dolor, doloremque quaerat, labore quia fugiat porro facilis inventore! Nulla magnam labore assumenda laboriosam incidunt nisi dignissimos maxime repudiandae, maiores ipsa quod eligendi, at nesciunt quos. Commodi vitae blanditiis ratione assumenda. Voluptatem placeat provident illum officia fugit sequi vero nisi quam. Ipsum rerum eius ratione ea asperiores possimus praesentium commodi fuga, minima eum laudantium suscipit nostrum eveniet perferendis deserunt laboriosam blanditiis neque, alias, voluptatem eligendi dolorum vitae quae! Aut amet aliquid libero pariatur, blanditiis harum atque. Necessitatibus, iure? Odio quae magnam aliquid incidunt officia error perspiciatis illum voluptatum hic? Quas alias nemo accusantium temporibus error? Provident fuga fugiat eius enim totam soluta saepe beatae accusantium asperiores sunt nesciunt ipsa, eaque dolorum et perspiciatis dignissimos sequi? Adipisci dolorem doloremque facere pariatur inventore fuga cupiditate vel quidem enim a quia, ab odio, eveniet dignissimos dolores aliquid tenetur autem, quis nam quibusdam. Vel, quam excepturi. Fugit maxime voluptatum nam maiores delectus, quo illo consequatur aliquid dolorem excepturi quia sit laudantium quam deserunt numquam adipisci voluptatem eveniet voluptates, sed veniam rem reprehenderit corporis? Blanditiis quod, aut consequuntur commodi nisi, cupiditate dolor nihil aperiam deserunt quaerat molestiae quis nesciunt, laborum unde incidunt culpa! Possimus commodi impedit ullam eius aut veritatis expedita voluptatum nam deserunt ipsa, eum consequatur iusto doloribus enim voluptas labore ut nobis obcaecati illo perspiciatis quam similique provident. Culpa, quos sint eveniet eaque sequi doloremque mollitia nesciunt alias maiores debitis natus soluta. Explicabo dolorum ipsum dolores quaerat doloribus ad commodi nulla cupiditate doloremque. Quas iusto velit pariatur voluptatibus labore? Assumenda, cumque! Dicta molestias, harum officiis aperiam velit temporibus optio obcaecati nemo sint quam debitis nostrum. Esse, dolor. Excepturi provident ea ab, quas fugiat, dolores magni sapiente ipsum, accusantium commodi ex itaque enim! Beatae odio ipsa quisquam enim eius expedita obcaecati doloribus libero illum minima dolor asperiores accusantium, saepe suscipit facilis consequatur laboriosam, optio nemo cupiditate commodi necessitatibus aperiam. Enim perferendis ullam cum beatae soluta quas aspernatur labore itaque veniam delectus dolor debitis, voluptatibus veritatis deserunt nihil blanditiis velit ex obcaecati necessitatibus officiis minima omnis odit. Explicabo est consequuntur, ea nemo asperiores placeat nisi cum fugiat reiciendis repudiandae unde ipsum, distinctio nesciunt eos eligendi. Quo provident atque aperiam nemo numquam quaerat aliquid! Quibusdam culpa obcaecati quaerat excepturi veniam! Ut aliquam dolorum vitae praesentium reprehenderit? Unde hic consequatur officia, amet doloremque expedita! Voluptas accusamus animi ipsum quisquam atque et, ducimus est sequi quos quibusdam, nulla omnis, magnam debitis molestiae sit eius soluta impedit iusto esse voluptatem minus fugiat dolor provident? Adipisci ipsam eos, id ad accusamus voluptates accusantium maiores quas quos nobis, optio culpa assumenda similique voluptatum rem dolorum veniam doloremque ducimus quasi sit. Quos blanditiis natus in nisi sint illo unde inventore repudiandae, beatae eius ut vero ex at veritatis dolor itaque obcaecati adipisci. Itaque beatae omnis tempora et eos debitis, amet incidunt consequuntur aut aliquid, porro distinctio expedita repellat tempore. Similique iste dolores excepturi esse laborum ad, asperiores voluptate. Cum harum aliquid alias qui perferendis magnam maiores eligendi expedita et sapiente quibusdam animi unde minus, mollitia nihil repellat delectus cupiditate, architecto eveniet! Modi iusto vero molestiae laudantium, corporis optio a vel perspiciatis quisquam alias maiores ratione, ea ipsam id quam dolorem quis consequuntur. Excepturi at explicabo doloremque asperiores cupiditate? Cum sunt dolorem similique eveniet eligendi, obcaecati nesciunt vel perspiciatis delectus magnam, illum doloribus aut amet ipsam veritatis laboriosam quidem alias illo saepe rerum! Et dicta quo tempore eos dolore? Iste hic recusandae, blanditiis cumque veniam quas architecto. Repudiandae aliquam necessitatibus magni rerum quisquam eum atque dolorum placeat dignissimos. A qui cumque voluptates sint optio voluptatibus vitae harum tenetur reiciendis id eos quidem tempore laborum in error obcaecati odit ex et ratione, eaque assumenda aut eius! Impedit, quis. Nulla inventore neque omnis qui eveniet molestias eius sint vel voluptas! Tempora, animi? Sequi veniam iure quibusdam repellat, dolorum, id earum accusamus reiciendis at possimus adipisci a similique?</h5>
</section>
</body>
</html>
I tested a bit and I think the problem is not with the position sticky but with where your nav is located in the html.
if you move it outside the header you will see that it already sticks a little. The problem is that it can only stick to the top of its container as long as it doesn't touch the bottom of the container. So the height of the container should be bigger for you nav to be able to move.
Could you add some more detail on how you want the desired design to behave.
Do you wish to have the navbar stop when it hits to the top of the page? If so you will likely require some JavaScript. In which case, this may be what you are looking for...
https://www.w3schools.com/howto/howto_js_navbar_sticky.asp
If you simply wish for the navbar to stay where it is whilst the rest of the page moves behind it, then try this...
nav {
position: fixed;
}
I am building my very first website.The slide-in and slide-down animations were working properly until I set the navigation bar (nav-bar) position fixed then the animation got ruined I fixed the slide down animation of .welcome-text but could fix the slide-in animation of #intro.
I would like that slide-in animation slides-in without distorting the other pages - here is the code below;
//HTML
'''<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Deborah Palm Tree</title>
<link rel="stylesheet" href="profile.css">
<link rel="stylesheet" href="work.css">
<link rel="stylesheet" href="about.css">
</head>
<section class="Home" id="#Home">
<nav class="nav-bar" id="#nav-bar">
<ul>
<li>Home </li>
<li>Work</li>
<li>About </li>
</ul>
</nav>
<body>
<section id="#Home">
<h1 class="welcome-text"> Welcome to my page! </h1>
<div id="intro" class="page-intro">
<a name="Home">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. A modi veniam
repellendus nesciunt
nemoquam Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptas
mollitia placeat
perspiciatis
expedita! Explicabo hic expedita soluta eos ullam. Incidunt vitae
laboriosam temporibus iusto
iste maiores dolorum soluta, ipsa minus optio repudiandae adipisci aut
deserunt vel atque
deleniti facere, sint, quas earum a. Ipsum neque, explicabo fuga, expedita
error sequi ratione
atque et fugit adipisci harum ad dolorum! Deleniti similique, reiciendis
ipsam blanditiis a
neque, iste obcaecati, soluta eveniet nostrum praesentium porro culpa
asperiores quisquam unde
sapiente ad dolorum architecto voluptatum? Officia nihil saepe iste
excepturi distinctio
exercitationem veniam, voluptates laudantium repellendus, eligendi omnis
molestiae impedit
necessitatibus incidunt consectetur debitis quisquam assumenda deleniti
quam molestias nemo.
Perspiciatis aperiam sit fugit provident mollitia. Nostrum, fuga quaerat praesentium excepturi
iste impedit consectetur architecto odio blanditiis ducimus aliquid sit! Doloremque, obcaecati
laudantium, quia alias repellendus quos suscipit, modi corporis quidem corrupti incidunt
consequatur laborum necessitatibus eaque perspiciatis quod repudiandae qui! Deserunt, quo error
dolor provident ipsum nostrum dolore nihil veritatis ad quibusdam ducimus suscipit doloremque
neque incidunt nisi temporibus. Atque ipsa labore magni, exercitationem, laudantium nostrum
Officiis deserunt qu quaera dicta eaque vitae, nulla doloribus minima praesentium aliquid
nesciunt. Cumque rem
aspernatur id repellat s placeat corrupti eum eos quidem aliquid. Hic numquam quos sequi est
dignissimos magnam
voluptatibus maiores excepturi ratione reiciendis quia fugiat ipsa voluptatem nobis accusamus
sint asperiores neque,
animi nemo eminus sapiente! Culpa temporibus illum ullam rem quae aspernatur doloribus ut
voluptatum nihil
quo laborum, a provident. Iste ratione inventore saepe architecto recusandae.
</p>
</a>
EXPLORE
</div>
</section>
<section class="Work" id="#Work">
<h2 class="h2-Work"> WORK </h2>
<a name="Work">
<p class="p-Work">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam nobis ex veritatis nostrum harum sit,
cupiditate aliquid tempore, suipit neque eveniet quisquam sed, ratione blanditiis eaque nemo quibusdam.
debitis numquam cum odio dicta ducimus pariatur ullam! Nesciunt facere reprehenderit cupiditate aperiam
repudiandae autem blanditiis magni ea, odit molestiae quo ad vero ratione cumque beatae voluptatem porro
ipsum, ducimus dignissimos eaque quibusdam quod. Velit facilis ipsum, harum amet quaerat perferendis
suscipit officiis recusandae voluptatibus cum numquam quisquam alias? Vero deserunt commodi ea dolores. Fuga
debitis inventore temporibus harum porro! Atque maxime iste hic aperiam sunt reprehenderit, dignissimos
dolorem perferendis possimus exercitationem iure commodi modi repellendus at esse labore magnam quia
quibusdam maiores, quaerat nesciunt nobis! Eius saepe, quo itaque rem quia quae sequi tempora, ratione
eveniet, possimus sunt! Tempore nemo, quia reprehenderit dolorum totam quae? Magnam non ratione esse,
laudantium ducimus ullam officiis! In placeat ut libero rem consectetur dolorem ullam consequatur suscipit
amet sunt voluptas, harum dolorum quaerat similique, perspiciatis, ratione officia id obcaecati ipsa
perferendis repellendus. Explicabo animi repellat a vel in, doloremque eum officiis reiciendis ipsam quis
deleniti assumenda quibusdam fuga recusandae impedit asperiores eos cum aperiam labore vero molestiae? Odio
aut laboriosam perspiciatis aspernatur blanditiis excepturi provident consectetur beatae.
perferendis neque minima a labore excepturi recusandae earum ut alias, culpa molestias voluptate est iste
reiciendis! Velit, debitis quasi sit commodi dicta sunt, minus vel modi dolores repellat laudantium,
suscipit Lorem ipsum dolor sit amet consectetur adipisicing elit. Omnis ullam ducimus velit quisquam
provident. Saepe, dolores suscipit harum adipisci dicta obcaecati officiis voluptatibus, cupiditate iure
nostrum, nemo voluptatem facere cum. Exercitationem ipsam ab est et porro, debitis, sapiente nam recusandae,
illo delectus ea. Consequuntur provident exercitationem dolore numquam repellendus nam voluptas at modi
repellat non dolores nemo laborum molestiae aliquid eaque, similique id voluptate. Omnis unde est saepe
asperiores, delectus ipsum dolore. Dicta repellat odit, debitis temporibus incidunt omnis saepe ipsam
consequuntur obcaecati, sit laudantium ratione. Sapiente, reiciendis cumque, exercitationem voluptates,
alias fuga enim consequuntur dolorem consequatur repudiandae modi? Quibusdam.
temporibus vero ducimus reprehenderit quod labore tempora tenetur provident perferendis cumque.
</p>
</a>
</section>
<section class="About" id="#About">
<h3 class="h3-About"> ABOUT </h3>
<a name="About">
<p class="p-About">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam nobis ex veritatis nostrum harum sit,
cupiditate aliquid tempore, suscipit neque eveniet quisquam sed, ratione blanditiis eaque nemo quibusdam.
Soluta Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam repudiandae minima architecto quibusdam
dolore optio nihil assumenda, laboriosam facilis repellat totam dolorem impedit mollitia at nisi a ipsum
aliquam explicabo. perferendis neque minima a labore excepturi recusandae earum ut alias, culpa molestias
voluptate est iste
reiciendis! Velit, debitis quasi sit commodi dicta sunt, minus vel modi dolores repellat laudantium, Lorem
ipsum dolor sit amet consectetur, adipisicing elit. Minima aliquam eligendi culpa, fugit non voluptatem quia
aspernatur optio assumenda dignissimos excepturi, expedita cum voluptates error omnis earum praesentium quas
quidem ipsam doloribus. Beatae, quos. Quam, maxime itaque tenetur repudiandae modi libero nihil nemo qui
temporibus sed impedit minima doloremque earum excepturi accusamus culpa vel sit natus dolor velit, hic,
sapiente ea ut quae. In placeat velit excepturi iste temporibus, illum dignissimos optio repellat totam
asperiores animi voluptatem illo voluptas, odit et molestias pariatur quas! Impedit aut odio similique
vero ducimus reprehenderit quod labore tempora tenetur provident perferendis cumque.
</p>
</a>
</section>
<section class="footer" id="#footer">
<footer>
© Website designed by Deborah Palm Tree.
</footer>
</section>
</body>
</html> '''
//CSS -The HTML has 3 nav-bar items I set the nav-bar position to fixed and its top to
zero to ensure the nav-bar is static as I scroll down the page this affected the slide-
animation of the Home
''' * {
margin: 0;
padding: 0;
}
body {
background-color: black;
text-align: center;
}
.page-intro {
max-width: 960px;
margin: auto;
padding: 0 30px;
}
.welcome-text {
height: 80px;
}
nav.nav-bar {
position: fixed;
top: 0;
background-color: darkolivegreen;
min-width: 100%;
height: 8vh;
}
nav li {
display: inline-block;
margin-right: 5%;
}
nav ul {
list-style: none;
display: flex;
justify-content: flex-end;
}
nav li a {
text-decoration: none;
color: whitesmoke;
}
h1,
.page-intro {
color: whitesmoke;
}
h1.welcome-text {
font-size: 50px;
line-height: 1.3;
animation: slide-down 3s forwards;
}
.h2-Work,.h3-About{
font-size: 25px;
color: antiquewhite;
text-align: center;
padding: 30px 30px 0px 30px;
}
#keyframes slide-down {
0% {
margin-top: -20px;
}
100% {
margin-top: 80px;
}
}
#intro {
animation: slide-in 3s forwards;
}
#keyframes slide-in {
0% {
margin-left: -50%;
}
100% {
margin: 0;
}
}
.btn {
display: inline-block;
color: #fff;
text-decoration: none;
padding: 1rem 2rem;
border: #fff 1px solid;
margin-top: 40px;
opacity: 0;
animation: btn 3s 3s forwards;
transition: transform 1s;
}
.btn:hover {
transform: rotateY(180deg);
}
#keyframes btn {
0% {
bottom: 10%;
opacity: 0;
}
100% {
bottom: 5%;
opacity: 1;
}
}
.p-Work {
color: antiquewhite;
text-align: center;
}
.p-About {
color: antiquewhite;
text-align: center;
}
.footer {
color: antiquewhite;
background-color: cadetblue;
min-width: 100%;
}'''
#intro {
animation: slide-in 3s forwards;
transform: translate(-50%);
position: relative;
left: 50%;
}
position: relative;
This is allowing the element to retain its size in-line with the parent element i.e. it is relative to the box modle of its perant
left: 50%;
This is centering the possition of the element to the middle but
transform: translate(-50%);
By default, all the elements have their center point in the top left of the page and this means that you need to shift that to the center, which is where the transform translate comes into play
Hope this helps
Based on the above all you need is to keep the changes made in my answer above as well as adding the navbar to being fixed:
nav.nav-bar {
position: fixed; (<<<< the nav bar will stay at the top of the page)
top: 0;
background-color: darkolivegreen;
min-width: 100%;
height: 8vh;
z-index: 5; (<<<<<< the content goes under the nav)
}
Z-index is the position of elements, if a z-index is higher than another elements then it will apear infront the the element (this only works for possitioned elements - so it will work here as the possition is set to fixed)
More info here:
https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
For point 3) intro text should slide in from left side -
This is currently doing so correctly from the code I can see and have edited:
#intro {
animation: slide-in 3s forwards;
transform: translate(-50%);
position: relative;
left: 50%;
}
If there is an issue here let me know :)