Во всем нужна мера. CSS Reset - сброс параметров разных браузеров, обычно в нулевые значения. Почему? Потому что нет единой системы координат, у каждого свои стили по умолчанию. Мы хотим кроссбраузерности с минимальными усилиями.
Я против избыточности. Самый правильный способ - создавать CSS Reset под проект, по мажоритарному принципу. Т.е. обнулять margin и padding желательно, а остальное настраивать как требуется для БОЛЬШИНСТВА элементов (недочерние), чтобы потом не повторять одни и те же строки в описании поведения таблиц, списков, заголовков.
Вот
ЭТОТ пример - явный переизбыток.
Не знаю, почему людям не нравится универсальный селектор, который, подобно буре, сносит все на своем пути, оставляя в осадке абсолютный ноль. Но здесь есть нюанс. Не советуют употреблять универсальный селектор тем, кто создает темы для систем управления сайтом CMS, потому темы естественно будут видоизменяться пользователями, и где-то обязательно всплывет ненужное поведение.
Подробнее о CSS Reset на
Хабрахабр. Здесь ссылки на разные точки зрения уважаемых специалистов.
Для простых страниц я использовала универсальный селектор
http://www.partnergrp.ru/pg/pg.css (в дефолтных параметрах после *), который обязательно надо располагать выше всего остального, т.к. все правила ниже переписывают все что было описано выше. Вот зачем мне, к примеру, навороченный Reset, если у меня pg.css целиком уложился в небольшом объеме килобайт. И без лишних наворотов сложностей хватает - одни только png чего стоили.
Также по мажоритарному принципу надо пользоваться классами. Класс- только для выделения особых случаев, все остальное должно описываться полагаясь на отношения родители-дети, где дети в слое c id=text имеют одни свойства, а дети в слое с id=lcol - другие. Например, в генетике есть доминантные и рецессивные признаки наследования. Так вот: доминантные признаки надо описывать как дочерние элементы без классов, а рецессивные - как элементы с классами. Второй способ использования классов - один и тот же повторяющийся класс, потому что class можно упоминать не один раз, а id должны упоминаться на странице html единожды, тем более по уникальному имени id на html-странице на него можно делать ссылку.
Также приходится для первого абзаца делать класс "no", чтобы абзац был без отступа. Естественно в CSS предусмотрен более простой способ для красной строки - псевдоклассы, но он поддерживается не всеми браузерами, т.е. в данном случае не каждый браузер будет проверять, первая ли это строка абзаца внутри слоя или нет.