FAQ: CSS Display and Positioning - Position: Sticky

This community-built FAQ covers the “Position: Sticky” exercise from the lesson “CSS Display and Positioning”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Build a Website with HTML, CSS, and Github Pages
Full-Stack Engineer
Front-End Engineer

Learn CSS

FAQs on the exercise Position: Sticky

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!
You can also find further discussion and get answers to your questions over in Language Help.

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head to Language Help and Tips and Resources. If you are wanting feedback or inspiration for a project, check out Projects.

Looking for motivation to keep learning? Join our wider discussions in Community

Learn more about how to use this guide.

Found a bug? Report it online, or post in Bug Reporting

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

The sticky value is another position value that keeps an element in the document flow as the user scrolls, but sticks to a specified position as the page is scrolled further.

I understand what position: sticky do in css.
But I didn’t understand what is the usage of sticky in real-world websites. Can anyone please demonstrate it with example?
Thanks

4 Likes

Right here on this blog, on the left you have that sticky page progress. That is a good example.

2 Likes

This is done by using the sticky value along with the familiar offset properties, as well as one new one.

Anyone know what the new offset property is? I don’t seem to see any new offset properties in the lesson material nor in the examples.

EDIT: It’s the next lesson, the z-index (https://developer.mozilla.org/en-US/docs/Web/CSS/z-index). Maybe should add a note about this fact to this lesson: “…, as well as one new one (z-index) which we will talk about in the next part.”

I was wandering why the <h4>Question 5</h4> element didn’t “stick” at 40px from the top, like all the prevoius questions did. Same class, so they all correspond to the same style in css.

I have the exact same question.

From the lesson:

Blockquote “And since ‘fixed’ and ‘absolute’ positioned elements are removed from the document flow, when a user scrolls, these elements will stay at their specified offset position.”

I’m confused here, because in the Fixed section, it says

Blockquote “When an element’s position is set to ‘absolute’, as in the last exercise, the element will scroll with the rest of the document when a user scrolls.”

And then, it says that with ‘fixed’

Blockquote “We can fix an element to a specific position on the page (regardless of user scrolling)”

My question is - will ‘absolute’ and ‘fixed’ both stay on the page when scrolling? The first quote from the “Sticky” section makes it sound like both absolute and fixed will stay positioned regardless of scrolling. But if that’s the case, then what is the difference between the two?

2 Likes

Wha’s the difference between fixed and sticky?

1 Like

Maybe I’m missing something, but when I set the rule position:sticky for the question class and Run the code, I get an error:

And even though I’m getting an error, the change is reflected in the in-course browser:

EDIT
Annnnd I just figured out why… position was already set a few lines up, I just didn’t see it. I might try the same in a text editor/local IDE to see if this sort of thing would be picked up in the real-world

Happened to me too :sweat_smile:

haha, glad it’s not just me!

1 Like

It’s still not working for me, even when I remove the earlier position declaration. Any suggestions? Also, why won’t sticky show up in purple like the other position keywords?

I also found this one difficult.
I read the question again carefully.
Then I thought should I add or change something?

I’m thinking it’s because we reached the bottom of the page and there isn’t any more room to scroll down.

I agree. This is such a badly worded section of the course that it seems they are contradicting themselves. Not a great sign so early in the course and kind of makes me lose a bit of trust in if I’m being taught accurate information

2 Likes

position: fixed

Behavior:

  • An element with position: fixed is positioned relative to the viewport, which means it stays in the same place even when the page is scrolled.
  • It is removed from the normal document flow, so it does not affect the position of other elements.

Use Case:

  • Useful for creating elements that should always be visible, such as a navigation bar, footer, or a “back to top” button.

position: sticky

Behavior:

  • An element with position: sticky behaves like a relative element until a specific scroll position is reached, after which it behaves like a fixed element.
  • It remains in the normal document flow, meaning it still affects the position of other elements.

Use Case:

  • Useful for elements that should scroll with the page until a certain point, such as table headers or a section title that stays at the top of its section while scrolling.

Key Differences

Positioning Context:
    fixed: Positioned relative to the viewport.
    sticky: Positioned relative to its nearest scrolling ancestor or the viewport if no scrolling ancestor exists.

Scroll Behavior:
    fixed: Element remains fixed in the same position in the viewport during scrolling.
    sticky: Element switches from relative to fixed positioning when it reaches a defined scroll position.

Impact on Document Flow:
    fixed: Removed from the document flow.
    sticky: Remains in the document flow.
1 Like

Same question here. They are contradicting themselves and all this part of the course is confusing. Even the example of ¨sticky" with the moving block does not clearly illustrate the difference between "fixed"and “sticky”.

1 Like

I agree also. This course on “Position” is conceptually/semantically incoherent, where it appears to me from reading it over and over again that this part of the course hasn’t been recently reviewed/updated. Very annoying to have to go to outside sources to clarify these concepts.