I've got a fixed-width div with two buttons in it. If the labels of the buttons are too long, they wrap--one button stays on the first line, and the next button follows underneath it instead of adjacent to it.
How can I force the div to expand so that both buttons are on one line?
Try
white-space:nowrap;
If you don't care about a minimum width for the div and really just don't want the div to expand across the whole container, you can float it left -- floated divs by default expand to support their contents, like so:
A combination of both
float: left;
white-space: nowrap;
worked for me.Each of them independently didn't accomplish the desired result.
I don't know the reasoning behind this, but I set my parent container to
display:flex
and the child containers todisplay:inline-block
and the stayed inline despite the combined width of the children exceeding the parent.Didn't need to toy with
max-width
,max-height
,white-space
, or anything else.Hope that helps someone.
Forcing the buttons stay in the same line will make them go beyond the fixed width of the div they are in. If you are okay with that then you can make another div inside the div you already have. The new div in turn will hold the buttons and have the fixed width of however much space the two buttons need to stay in one line.
Here is an example:
You may want to consider overflow property for the chunk of the content outside of the
parentDiv
border.Good luck!
If your div has a fixed-width it shouldn't expand, because you've fixed its width. However, modern browsers support a
min-width
CSS property.You can emulate the min-width property in old IE browsers by using CSS expressions or by using auto width and having a spacer object in the container. This solution isn't elegant but may do the trick: