It removes all default margin and padding for every object on the page, no holds barred, regardless of browser. This provides a nice clean slate for design and ensures that all spacing is intentional, explict, and ubiquitous across browsers. There is no reason not to do this.
Some people like to include
border: 0; as a part of it, but it has been found to not be effective in all situations (including the annoying borders>, so why bother…
helps keep your designs consistent across browsers, a very good thing. This technique works on all browsers, so I never really considered any negatives.
this post by Christian Montoya who points out:
This eliminated all differences in padding and margin across browsers so I was free to go about styling my page. Unfortunately, this isn’t a good practice. It’s very heavy on the rendering agent to apply rules to every single element in the document, especially with large web pages, and this can also destroy a lot of good default styling, especially when you want to have default styled submit buttons.
In fact, if you are using Firefox or Opera to view this site, you will notice that the “Say it!” button that you need to press to submit a comment has been stripped of it’s nice default style and now just looks like normal text with a border around it. Not very ideal. If you are using Safari, it uses the default Safari-style button, which is nice.