I’m trying to make a text field and a button appear like they are part of a joint element, so that they look like this (screenshot from Chrome Linux):

However in Firefox Linux the button is two pixels too tall:

Example CSS: http://dabblet.com/gist/1603701
I have set the font size of both elements to 16px in the hope that they will display the same, giving a line-height of 19px – but in Firefox the button has a height of 21px instead! Setting an explicit height can lead the vertical alignment to become incorrect in Firefox unless I shrink the font (not sure why that is).
Apparently you can’t set the line-height on inputs in Firefox (see article and bug report), so how else can I force the elements to be the right height?
Any suggestions?
Here’s a cross-browser solution:
You can see it working here: http://dabblet.com/gist/1604595