Centering elements in CSS is a common design task — but when it comes to floated elements, achieving center alignment isn’t straightforward. Since float
removes an element from the normal document flow and only allows alignment to the left or right, you can’t directly center an element using float: center
(it doesn’t exist).
In this article, we’ll explore why floated elements can’t be centered directly and present workarounds to center them horizontally in CSS.
🧠 Why Can’t You Use float: center
?
The float
property in CSS only accepts the following values:
left
right
none
inherit
There is no float: center
, because float was designed to wrap text around elements aligned to one side, not for centering content.
✅ Workarounds to Center a Floated Element
Even though float: center
doesn’t exist, there are still ways to horizontally center a floated element using other CSS techniques.
1. Wrap the Floated Element and Use text-align: center
on the Parent
This method works best for inline or inline-block elements.
Example:
<div class="wrapper">
<div class="float-box">I’m centered</div>
</div>
.wrapper {
text-align: center;
}
.float-box {
float: none;
display: inline-block;
}
✅ Explanation:
By setting the child element to inline-block
(instead of floating), you can use text-align: center
on the parent to center it.
2. Using margin: 0 auto
on a Block Element
If the element has a fixed width and is not floated, you can center it with auto margins.
Example:
.center-box {
width: 200px;
margin: 0 auto;
}
⚠️ Important: This only works when float
is not used and the element is a block-level element with a specified width.
3. Center Multiple Floated Elements in a Row
If you want to center a row of floated elements, wrap them in a container and apply tricks like display inline-block
or Flexbox (recommended).
Float-based method (not ideal):
<div class="outer">
<div class="inner">Box 1</div>
<div class="inner">Box 2</div>
</div>
.outer {
text-align: center;
}
.inner {
float: none;
display: inline-block;
width: 100px;
}
🟡 This is an alternative to float that mimics float behavior while allowing centering.
4. Best Practice: Use Flexbox Instead
For modern layouts, the easiest way to center any element — including what you might float — is to use Flexbox.
Example:
.container {
display: flex;
justify-content: center;
}
<div class="container">
<div class="box">Centered</div>
</div>
✅ Clean, responsive, and no float headaches.
🧾 Conclusion
While float
is useful for specific use cases like text wrapping, it is not ideal for centering elements. Because float
only supports left and right alignment, you’ll need to use workarounds like:
text-align: center
withinline-block
margin: 0 auto
(without float)- Better yet, switch to Flexbox for a more elegant and robust solution
Pro tip: If you’re thinking about layout or centering, you probably don’t need float
at all — reach for flex
or grid
instead.