What I'm attempting to do now, is creating a container (with floated elements) that adapts its width to the elements that fit..
The simplest example I can think of is this: A container is filled with 300px * 300px floating divs. As long as the divs don't fill up a row, the width of the container (cleared both) is the same as the combined width of the divs, or 1 div = 300px, 2 divs = 600px and so on. However, if the divs don't fit on one row, they go on to the next and the width of the container remains at 100% even though the divs on the first row only take up (let's say) 95%.
Is there a pure CSS way of making that container no wider than its contents?
#main {
  float: left;
  background-color: #f00;
}
#main > :last-child:after {
  clear: both;
}
.float {
  width: 150px;
  height: 150px;
  float: left;
  background-color: #00f;
}
<div id="main">
  <div class="float"></div>
  <div class="float"></div>
  <div class="float"></div>
  <div class="float"></div>
  <div class="float"></div>
  <div class="float"></div>
  <div class="float"></div>
  <div class="float"></div>
  <div class="float"></div>
</div>
Here's a JSfiddle: http://jsfiddle.net/j9A6T/ Can you lose the red part to the right?
I have tried using the float/inline-block/table solutions on the container, but they won't work in this case.
 
     
    