What does this property do?
It determines how an element is positioned in the document.
Some Clarifications
- offset properties refers to top/right/bottom/left properties
 - an element's natural position / where an element would naturally be refers to the element without position property defined on it
 - positioned element refers to an element with display set to anything other than static
 
All CSS Position Values
- position:static; (default)
 - position:relative;
 - position:absolute;
 - position:fixed;
 - position:sticky;
 
static
- The default value.
 - Cannot use offset properties.
 
relative
- Allows use of offset properties.
 - The offset properties are based on where the element would naturally be.
 - The elements around it will treat this element as if it still sits in its natural position regardless if offset properties are used.
 
absolute
- Allows use of offset properties.
 - The offset properties are based on the closest non-static ancestor or the initial viewport. This means that if the body is scrollable the absolute element will not move with the viewport.
 - Elements around it will treat it as if it doesn't exit.
 
fixed
- Allows use of offset properties.
 - The offset properties are based on the viewport(not the initial viewport) or if any ancestor has transform, perspective or filter set to anything other than none.
 - Elements around it will treat it as if it doesn't exit.
 
sticky
- Allows use of offset properties.
 - The offset properties are based on nearest ancestor with overflow set to anything other than visible. If it cannot find one, it uses 
<html>or<body>, check usingdocument.scrollingElement. Another way to think of offset values is it is the minimum gap between the element and the edge of the viewport while the container is in-frame. - The element is also constrained by its closest block level ancestor. i.e. it cannot leave that ancestor.
 - The elements around it will treat this element as if it still sits in its natural position regardless if offset properties are used.
 
Summary
- Positioned elements all allow the use of offset properties.
 - Elements around static, relative, sticky elements will treat them as if they are still in their natural positions.
 - Elements around absolute and fixed elements will treat them as if they don't exist.
 
    
Top comments (4)
Wow, I have struggled a lot to understand this CSS positions thanks for your efforts to explaining all this :)
You're welcome!
Thanks for the encouragement!