I think you should look at this link: http://coding.smashingmagazine.com/2013/02/27/css-form-elements-problem/ especialy the paragraph about file input and the selector I did not knew before: input[type="file"]::-webkit-file-upload-button
This link refers to an older article: http://www.456bereastreet.com/archive/200701/styling_form_controls_with_css_revisited/ (sligtly outdated, but gives a good idea of the differences between browsers)