I would suggest using CSS reset as a starting point ( Eric Meyers is probably the best known).
I think you have problems with things when you do not want to set your own style, but return it to the default browser (for example, you do not want margin:0; for everything, you want the default big margin to be H1 , the default is smaller in p , etc.
In fact, you can get copies of user agent style sheets, modify them to make them more specific, and enable them to be rewritten. Here is a site with copies of a large number of default UA style sheets . The problem is that each browser uses its own, so if you do not find the browser and do not use custom stylesheets, it will not look like usual for this browser. However, I think that everything is in order. I would suggest that you simply select the default browser and want all browsers to look like this, or you can use the W3C suggestion for the default browser styles .
All this does not solve your problem, because the elements of the style form are hell. Once you apply the style, some browsers will switch the rendering mode for the form element so that you can never return it to its original style. For example, IE7 does not support rounded corners, but their buttons have rounded corners by default because they are displayed in the Windows OS style. But as soon as you give the button a border or some other style, it loses that beautiful window shaded corner by default, and there is no way to return it without using an image!
So, I would not shoot trying to get browsers to return to their default native style. I would use the default UA style sheet, and then modify it to make some kind of general cross-browser cross-system default. It will not look like its own loose code, but it will look close enough.
source share