Since you have a fixed height, you can use absolute to achieve this (if you don't need IE 6 support)
EDIT update the response database on your jsfiddle, but I can only check it in the current browsers Chrome, Safari and FF.
jsfiddle
To automatically increase work with FF, you need to use a wrapper around it, and input should be 100% wide. To prevent the addition of input elements that need to be added to width , you must use the following CSS rules:
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
box-sizing supported: IE 8+, Chrome, Opera 7+, Safari 3+, Firefox
EDIT input style elements are usually problematic due to their padding and margin . To get the result that you want to achieve without the css3 calc function, you need to follow these steps:
Define the height for the surrounding .form-wrapper and set its position to relative so that this element is responsible for the absolute position of the elements it contains.
Wrap a container ( .input-wrapper ) around the input element, defining its position as absolute with left:0px , top:0px , bottom:0px and right:[the width of your button] so that the wrapper always has a distance from width of the button to the right side.
Set the width and height of the input element to 100% . To prevent the input element from being added to add to width , you need to set box-sizing to border-box .
Set the button - absolute position using top:0px , bottom:0px and right:0 and set the width width: [width of your button]
source share