I want to stack some elements on top of one another, expanding their width to fill their container. Then I want to take the last element (in this case an unordered list) and I want it to expand downward to fill the remaining room in the container. The container and the contained elements may all have some padding/margins.
I can never find a way to handle this that doesn't require hideous calc() expressions with hard-coded values to handle padding and element sizes. I feel like this is something simple that should just work without any effort.
<div class="container">
<input type="text"/>
<ul>
<li>Item</li>
</ul>
</div>