How to prevent a float:left DIV from wrapping?

P

plenty900

Hi folks,

Another question for you:

If I have multiple DIVs side by side using "float: left", and one
happens
to be very wide, how do I ensure that it doesn't wrap?

I have found that for some reason the width of the text inside
is taking precedence, when I want the text inside to wrap
within the DIV.

However I don't want to set the width of the DIV, because it is
a DIV that must grow and shrink when the window is resized.

Thanks!
 
B

Ben C

Hi folks,

Another question for you:

If I have multiple DIVs side by side using "float: left", and one
happens
to be very wide, how do I ensure that it doesn't wrap?

I have found that for some reason the width of the text inside
is taking precedence

Yes, that's how it works. The text helps itself to as much space as it
needs up to the maximum available, where available means the full
content width of the container, _not_ the space to the right of any
other floats that are already in the way. If it no longer fits in that
gap, it drops down.

[...]
However I don't want to set the width of the DIV, because it is
a DIV that must grow and shrink when the window is resized.

There is a trick you can do here with block formatting contexts, which
although not guaranteed by the specification, works in today's browsers.

Try this:

<style type="text/css">
.left
{
float: left;
width: 15em;
background-color: palegreen;
border: 2px solid blue;
}
.right
{
/*
* This div squeezes into whatever space remains to the
* right of the float and doesn't jump down. Note that the
* CSS 2.1 specification does allow it jump down if that's
* what implementors want to do though. It's just lucky so
* far none of them do.
*/
border: 2px solid blue;
overflow: hidden;
}
</style>

....
<div class="left">
Left column
</div>
<div class="right">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top