Is this correct behaviour by IE and FF?
It's not really stated in the standard how form field decorations are controlled by CSS. Originally they were implementated as OS widgets, in which case border-box sizing would make sense. Later browsers migrated to rendering the widgets themselves using CSS borders/padding/etc., in which case the content-box sizing would make sense. Some browsers (IE) render form fields as a mix of both, which means you can end up with select boxes not lining up with text fields.
And is there a cross-browser way around this problem?
About the best you can do is tell the browser which sizing you want manually using CSS3:
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
(Won't work on IE6/7, or IE8 when in quirks or compatibility mode.)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…