!important хорошо или плохо?
Щас вам тут наговорят. Это плохо, это ужасно, это отвратительно. Толком сказать никто не может даже почему! Ведь не просто так это свойство придумали, верно?
1) Если вы задаете такой вопрос, то вам в 1ю очередь нужно почитать про наследование в css.
2) Его нужно использовать, но тогда, когда это действительно необходимо. Когда пункт 1 нет возможности реализовать. Щас не смогу пример привести, башка уже не варит. 
Самый простой пример, когда какой либо скрипт, добавляет свои стили через атрибут style. Атрибут style имеет больший приоритет над стилями внутри css файла. Тут поможет свойство !important, которое повысит приоритет стилей внутри css файла.
Это отвратительно (представьте если у вас новый дизайн в 1000 строк стилей, и у каждого Important и это лишь для того, чтобы перебить стандартные стили), это лишь показывает Ваш не профессионализм! В CSS3.0 и так заложено, что при добавлении в конец таблицы стилей, новых стилей для элемента, именно эти стили и будут использоваться! А вот "сила" CSS3.0 правила это уже другое! Просто почитайте соответствующую литературу по CSS (правила наследования, каскадность стилей).