position (CSS property)

Share this article

Description

The position property, together with the float property, controls the way in which the position of the element’s generated box is computed. See Positioning for details about element positioning. Boxes with a position value other than static are said to be positioned. Their vertical placement in the stacking context is determined by the z-index property.

Value

    absolute The value absolute generates an absolutely positioned box that’s positioned relative to its containing block. The position can be specified using one or more of the properties top, right, bottom, and left. Absolutely positioned boxes are removed from the flow and have no effect on later siblings. Margins on absolutely positioned boxes never collapse with margins on other boxes. fixed The value fixed generates an absolutely positioned box that’s positioned relative to the initial containing block (normally the viewport). The position can be specified using one or more of the properties top, right, bottom, and left. In the print media type, the element is rendered on every page. relative The value relative generates a positioned box whose position is first computed as for the normal flow. The generated box is then offset from this position according to the properties top or bottom and/or left or right. The position of the following box is computed as if the relatively positioned box occupied the position that was computed before the box was offset. This value cannot be used for table cells, columns, column groups, rows, row groups, or captions. static The value static generates a box that isn’t positioned, but occurs in the normal flow. The properties top, right, bottom, left, and z-index are ignored for static boxes. inherit The value inherit causes the element to take the same computed value as its parent (see The CSS Property Value inherit) for more information.

Frequently Asked Questions about CSS Position Property

What is the difference between static and relative positioning in CSS?

In CSS, static and relative are two types of positioning methods. Static is the default positioning method. When an element is positioned statically, it is not affected by the top, bottom, left, or right properties. It is always positioned according to the normal flow of the page. On the other hand, an element with relative positioning is positioned relative to its normal position. This means you can adjust the position of the element using the top, bottom, left, or right properties without affecting the layout of other elements.

How does absolute positioning work in CSS?

Absolute positioning in CSS allows you to position an element precisely where you want it. It is positioned relative to the nearest positioned ancestor (instead of positioned relative to the viewport, like fixed). However, if an absolute positioned element has no positioned ancestors, it uses the document body, and moves along with page scrolling.

What is the use of the z-index property in CSS positioning?

The z-index property in CSS is used in conjunction with the position property to control the stacking order of elements. It only works on positioned elements (position: absolute, position: relative, position: fixed, or position: sticky). The z-index property specifies the stack order of an element. An element with greater stack order is always in front of an element with a lower stack order.

How does the fixed position differ from the absolute position in CSS?

The fixed position in CSS is a type of absolute positioning that positions the element relative to the browser window. Unlike the absolute position, the fixed position element will not move even if the page is scrolled, making it ideal for creating sticky headers or footers.

What is the purpose of the CSS position property?

The CSS position property is used to specify the type of positioning method used for an element. There are five different position values: static, relative, fixed, absolute, and sticky. The position property helps you manipulate the location of an element, allowing you to create complex layouts.

Can I use the CSS position property to center an element?

Yes, you can use the CSS position property in combination with other properties like left, right, margin, and transform to center an element. However, the exact method depends on the type of positioning and the context of the element.

What is the sticky position in CSS?

The sticky position in CSS 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.

How does the CSS position property affect the normal flow of the document?

The CSS position property can significantly affect the normal flow of the document. Static and relative positioning maintain the normal document flow, while absolute and fixed positioning remove the element from the document flow. This means that they do not take up space and can overlap other elements.

Can I nest positioned elements in CSS?

Yes, you can nest positioned elements in CSS. When you do this, the child element is positioned relative to the nearest positioned ancestor. This can be useful for creating complex layouts.

How does the CSS position property interact with the display property?

The CSS position property can override the display property. For example, if you set an element to display: none, but then position it with position: absolute or position: fixed, the element will still be displayed. However, the interaction between these two properties can be complex and depends on the specific context.

Adam RobertsAdam Roberts
View Author

Adam is SitePoint's head of newsletters, who mainly writes Versioning, a daily newsletter covering everything new and interesting in the world of web development. He has a beard and will talk to you about beer and Star Wars, if you let him.

Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week