I decided quite a while ago, probably about 18 months ago, that I wasn’t going to attempt to style form controls any more.

This was based on my personal experience and my personal preference - I think your average user appreciates being able to easily identify a text box, a form button etc. - as forms can be confronting beasts to some people. If you leave all the form controls in their default style in the users chosen browser then at least they can readily and quickly identify and understand them.

This is always something that the designer in me (and designers and other colleagues I work with) naturally (and usually subconsciously, on my part) fight. Quite often I end up styling form controls (buttons especially) in my design mock-ups and by that point it’s harder to let go of them.

I have in the past on numerous occasions thought “I wish that all browsers would allow me to do whatever I want with form controls” but that thought soon passed when I thought about some of the hideous monstrosities that would allow people to create, I’d never even contemplated the why and how it would be implemented by the browser or in CSS. Eric Meyer, on the other hand, has thought about it. It’s a very long post but defiantly a worthwhile read if this is something you’ve ever had to face.