Начну с обыденного, вот так, валидным образом мы обманываем браузеры (не советую оставлять комментарии на русском при копировании):
/* Правило для всех */
#MyDiv {
margin : 10px 10px 10px 10px;
}
/* Только IE6 */
* html #MyDiv {
margin : 5px 5px 5px 5px;
}
/* Только IE7 */
*:first-child+html #MyDiv {
margin : 2px 2px 2px 2px;
}
А теперь те кто не фанат валидации CSS пристегнитесь, мы отправляемся:
#MyDiv {
margin : 10px 10px 10px 10px;
*margin : 2px 2px 2px 2px;
_margin : 5px 5px 5px 5px;
}
* — работает только в IE7
_ — работает только в IE6
Последовательность имеет значение.









Спасибо! : )
За ie7 спасибо. вроде ещё *+html #MyDiv для седьмого осла применять можно.
Мне все равно удобнее кажется отделять IE стили в ie.css, чтобы нормальные браузеры не захламлять лишним спамом, вдруг он им еще не понравится )
А уже внутри ie.css:
.b-round { ... } /* Все MSIE */
* html .b-round { ... } /* MSIE 6 и ниже */
* html*.b-round { ... } /* MSIE 6 */
[class].b-round { ... } /* MSIE 7 */
P.S. много полезного почерпнул тут: http://company.yandex.ru/experience/css-framework/theory.html
Спасибо, помогло