How can I have a DIV's width behave like it does when float:left
is set, but without setting a float? width:auto
doesn't seem to do it (in chrome).
I am trying to get something like the following to work...
.center
{
margin-left: auto;
margin-right: auto;
width: auto;
}
You could try display: inline-block
and see if that works in your situation. However, you won't be able to center it using margin-left: auto
& margin-right: auto
because that technique requires a width value.
If possible, use display: inline-block
and set text-align: center
on it's container.
<div style="text-align: center">
<div style="display: inline-block;">
This will expand only as far as it needs to
</div>
</div>
The original answer above was written in 2011, before flexbox was implemented. You can achieve a similar effect
<div style="display: flex; justify-content: center;">
<div>
This will expand only as far as it needs to
</div>
</div>
There is another way to do this without a parent element.
inline-block
to make the div width fit to its content.position: relative
and left: 50%
to position its left edge to 50% of its containing element.transform: translateX(-50%)
which will "shift" the element to the left by half its own width..center {
display: inline-block;
position: relative;
left: 50%;
transform: translateX(-50%);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With