You can do this using display: table; in the containing div, and then display: table-cell; on internal divs. You can then apply the minimum width to the sidebar, and the content will occupy the rest of the page.
Demo can be found here.
Don't let display: table disable it - it doesn't use table marking or makes your html less semantic. It just makes your browser a processed div as it will be a table cell (this is exactly what is required)
HTML:
<div id="main_wrap"> <div id="sidebar">1</div> <div id="content">2</div> </div>
CSS
#main_wrap { display: table; } #sidebar { background:red; min-width: 200px; display: table-cell; } #content { background:blue; display: table-cell; width: 100%; }
source share