* Improve usage share * Remove 'No caveats' note from all snippets * Fix transform-centering usage: #search -> #feat * transform -> transforms2d * Add missing link for multiline truncate
1.3 KiB
1.3 KiB
Transform centering
Vertically and horizontally centers a child element within its parent element using position: absolute and transform: translate() (as an alternative to flexbox or display: table). Similar to flexbox, this method does not require you to know the height or width of your parent or child so it is ideal for responsive applications.
HTML
<div class="parent"><div class="child">Centered content</div></div>
CSS
.parent {
border: 1px solid #333;
height: 250px;
position: relative;
width: 250px;
}
.child {
left: 50%;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
Demo
Explanation
position: absoluteon the child element allows it to be positioned based on its containing block.left: 50%andtop: 50%offsets the child 50% from the left and top edge of its containing block.transform: translate(-50%, -50%)allows the height and width of the child element to be negated so that it is vertically and horizontally centered.
Note: Fixed height and width on parent element is for the demo only.
Browser support
⚠️ Requires prefix for full support.