Layout
Position
Utilities for controlling how an element is positioned in the DOM.
Quick reference
Class | Properties |
---|---|
static | position: static; |
fixed | position: fixed; |
absolute | position: absolute; |
relative | position: relative; |
sticky | position: sticky; |
Basic usage
Statically positioning elements
Use static
to position an element according to the normal flow of the document.
Any offsets will be ignored and the element will not act as a position reference for absolutely positioned children.
<div class="static ...">
<p>Static parent</p>
<div class="absolute bottom-0 left-0 ...">
<p>Absolute child</p>
</div>
</div>
Relatively positioning elements
Use relative
to position an element according to the normal flow of the document.
Any offsets are calculated relative to the element’s normal position and the element will act as a position reference for absolutely positioned children.
<div class="relative ...">
<p>Relative parent</p>
<div class="absolute bottom-0 left-0 ...">
<p>Absolute child</p>
</div>
</div>
Absolutely positioning elements
Use absolute
to position an element outside of the normal flow of the document, causing neighboring elements to act as if the element doesn’t exist.
Any offsets are calculated relative to the nearest parent that has a position other than static
, and the element will act as a position reference for other absolutely positioned children.
<div class="static ...">
<!-- Static parent -->
<div class="static ..."><p>Static child</p></div>
<div class="inline-block ..."><p>Static sibling</p></div>
<!-- Static parent -->
<div class="absolute ..."><p>Absolute child</p></div>
<div class="inline-block ..."><p>Static sibling</p></div>
</div>
Fixed positioning elements
Use fixed
to position an element relative to the browser window.
Any offsets are calculated relative to the viewport and the element will act as a position reference for absolutely positioned children.
<div class="relative">
<div class="fixed top-0 left-0 right-0">Contacts</div>
<div>
<div>
<img src="..." />
<strong>Andrew Alfred</strong>
</div>
<div>
<img src="..." />
<strong>Debra Houston</strong>
</div>
<!-- ... -->
</div>
</div>
Sticky positioning elements
Use sticky
to position an element as relative
until it crosses a specified threshold, then treat it as fixed until its parent is off screen.
Any offsets are calculated relative to the element’s normal position and the element will act as a position reference for absolutely positioned children.
<div>
<div>
<div class="sticky top-0 ...">A</div>
<div>
<div>
<img src="..." />
<strong>Andrew Alfred</strong>
</div>
<div>
<img src="..." />
<strong>Aisha Houston</strong>
</div>
<!-- ... -->
</div>
</div>
<div>
<div class="sticky top-0">B</div>
<div>
<div>
<img src="..." />
<strong>Bob Alfred</strong>
</div>
<!-- ... -->
</div>
</div>
<!-- ... -->
</div>
Applying conditionally
Hover, focus, and other states
Tailwind lets you conditionally apply utility classes in different states using variant modifiers. For example, use hover:absolute
to only apply the absolute
utility on hover.
<div class="relative hover:absolute">
<!-- ... -->
</div>
For a complete list of all available state modifiers, check out the Hover, Focus, & Other States documentation.
Breakpoints and media queries
You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:absolute
to apply the absolute
utility at only medium screen sizes and above.
<div class="relative md:absolute">
<!-- ... -->
</div>
To learn more, check out the documentation on Responsive Design, Dark Mode and other media query modifiers.