The accepted answer might work, but I don't like the idea of overlapping margins. In HTML5, you would do this with display: flex;
. It's a clean solution. Just set the width for one element and flex-grow: 1;
for the dynamic element. An edited version of merkuros fiddle: https://jsfiddle.net/EAEKc/1499/