The way to do this with out breaking a line is to use display: table-cell. To assure the spacing will work properly you should wrap the divs in a container and set a max-width on the container. Then find the remaining width of the middle box: 65+185 = 250. 800 (my max-width example) - 250 = 550. 550/800 = 68.75%. Set that percentage as the middle box and it will be completely fluid. Box 3 won't break to the next line no matter how small the browser gets.
FIDDLE
CSS
.container{ max-width: 800px } .box1{ width: 65px; height: 50px; background: black; display: table-cell; vertical-align: top; } .box2{ width: 68.75%; height: 50px; background: green; display: table-cell; vertical-align: top; } .box3{ width: 185px; height: 50px; background: yellow; display: table-cell; vertical-align: top; }
HTML
<div class="container"> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> </div>