Floats don’t play nice with mixing pixel and percent values. When you set 100% it will fill 100% of the parent element, not the space of the parent element container minus total pixel elements.
I would try to make all the floated div’s be percent based. Here is also another solution, but won’t work with three divs.