CSS

CSS Position: Positioning Using CSS

The CSS position property determines how you place an HTML element within its parent element.

How to Use the CSS Position Property

The position property can take several values, each affecting the layout differently. Common values include static, relative, absolute, fixed, and sticky.

element {
  position: value;
  top: value;
  right: value;
  bottom: value;
  left: value;
}

  • position: The property to define the positioning method (e.g., static, relative, absolute, fixed, sticky).
  • top, right, bottom, left: Optional properties specifying offset distances from the respective edges of the positioned element's containing block.

Static Position in CSS

The default position value for all elements is static. Static elements follow the normal flow of the document and ignore any top, right, bottom, and left properties.

.element {
  position: static;
}

Relative CSS Position

Elements with a CSS position of relative move relative to their normal position. Setting the top, right, bottom, or left values offsets the element from its original position without affecting surrounding elements.

.element {
  position: relative;
  top: 10px;
  left: 20px;
}

Absolute CSS Position

Elements with a CSS position of absolute are removed from the normal document flow. They move relative to the nearest positioned ancestor with a position other than static. If no such ancestor exists, they position relative to the initial containing block (usually the viewport).

.element {
  position: absolute;
  top: 50px;
  left: 100px;
}

Fixed Position in CSS

Elements with fixed positioning are removed from the normal document flow. They move relative to the viewport and stay in the same place when the page scrolls.

.element {
  position: fixed;
  top: 0;
  right: 0;
}

Sticky Position in CSS

Elements with a CSS position of sticky switch between relative and fixed positioning depending on the user's scroll position. A sticky element toggles between relative and fixed states as it crosses a specified scroll threshold.

.element {
  position: sticky;
  top: 0;
}

When to Use the CSS Property position

You use the CSS position property to control an element’s placement within a web page.

Aligning Elements Precisely

You can use relative or absolute positioning in CSS to fine-tune the placement of elements. By adjusting top, right, bottom, and left properties, you can place elements exactly where needed.

.header {
  position: absolute;
  top: 10px;
  left: 20px;
}

Creating Overlapping Content

Overlay elements by using absolute and fixed positions. This method works well for layering content, such as modals, tooltips, and pop-ups.

.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Sticky Navigation Menus

Sticky positioning is ideal for creating navigation menus that stick to the top of the page. This keeps essential navigation accessible even as you scroll down.

.navbar {
  position: sticky;
  top: 0;
}

Examples of Using the CSS position Property

E-commerce Floating Buy Button

An e-commerce website might use CSS absolute positioning to create a floating buy button. With a position of absolute in CSS, the button stays in a convenient spot on the screen.

.buy-button {
  position: absolute;
  bottom: 20px;
  right: 20px;
  background-color: red;
  color: white;
  padding: 10px 20px;
  border-radius: 5px;
}

Sticky Header for Blogs

A blog might use sticky positioning to keep the header visible at the top of the page as users scroll through the content.

.blog-header {
  position: sticky;
  top: 0;
  background-color: white;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  z-index: 10;
}

Fixed Footer for Always Visible Links

A website might use fixed positioning for the footer to keep important links always visible at the bottom of the screen.

.fixed-footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: #333;
  color: white;
  text-align: center;
  padding: 10px 0;
}

Learn More About the CSS position Property

Combining Position Values

Combine different positioning methods to create flexible layouts. For example, nest relatively and absolutely positioned elements within each other to achieve precise control.

.relative-container {
  position: relative;
}

.absolute-element {
  position: absolute;
  top: 50px;
  left: 20px;
}

Handling Z-Index

With the z-index property, you can control which layer appears on top when layering content. Higher z-index values place the element above those with lower values.

.box {
  position: absolute;
  z-index: 10;
}

Background Position CSS

You can use the CSS background-position property to place background images precisely. Apply keywords (like top, center) or precise values (like 50px, 10%) to control the position.

.hero {
  background-position: right bottom;
}

Responsive Design Considerations

Be sure to position elements so they adapt well to different screen sizes and orientations. You can combine media queries and relative units to make layouts responsive and user-friendly.

@media (max-width: 768px) {
  .sidebar {
    position: relative;
  }
}

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2024 Mimo GmbH