Forum Moderators: not2easy
white-space:nowrap; is the right choice, but as that will only force "white-space" - the white bits between words, or inline elements - not to break, not the space between blocks (your floats) you need to think a bit different. Another clue that this doesn't appear to be a job for floats is that they will 'wrap' as is their nature, because they will "float" into the available space ;) Float is a fairly stubborn property, there's not much you can do to force a floated element to go against it's nature! display: inline-block but it's not insurmountable ;) ul.main ul li with ul.main div or ul.main span for it to do the same thing display:inline-block; bit set first too so the bit in the main code needs to remain, and also IE8 does use it properly too. <style type="text/css" media="screen">
ul.main, ul.main ul {margin: 0; padding: 0; list-style: none;}
ul.main {width: 500px; padding: 0 0 0 10px; background: #ffc;}
ul.main li {white-space: nowrap; overflow: hidden;}
ul.main ul li {display: inline-block; margin: 10px 0;}
</style>
<!--[if LT IE 8]>
<style type="text/css" media="screen">
ul.main ul li {display: inline;} /* to make lesser IE versions display block elements as an inline-block; but still needs inline-block set earlier in the code */
</style>
<![endif]-->
<ul class="main">
<li>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
</li>
<li>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
</li>
</ul>
display: inline;- with no need for the extra IE workaround should also work ul.main ul li {display: inline;}