Chuda, онлайновый валидатор w3c ругался на двойные определения, но (не уверен точно - лучше сверится с первоисточником) это не противоречит стандарту.
У меня было нечто вроде:
.aaa, .bbb, .ccc
{
border: none;
............
}
.aaa
{
border-bottom: 1 solid black;
..........
}
Мне было удобнее определить общие свойства для нескольких классов, а потом переопределить для одного, но валидатор высказал свое фи.
Кстати, он также ругается на переопределение color без background-color и наоборот. Он перестал ругаться, когда я их стал ставить парами, но для неизменяемого назначал inherit.
Почему бы тебе не разбить css на более мелкие состовляющие и подменять только их по отдельности?
Еще вариант: хранить свойства в базе и менять тамже, а после изменения базы генерить css-файл. Так можно иметь множество настроек, которыми через web-интерфейс управлять проще, чем css-файлами.