Не будем углубляться в дскуссию насчет валидности css-хаков и правильности принципиального подхода применять хаки. Иногда просто надо. Позарез надо - и все
Так что как говорится гугль в помощь ;)
А в гугле на тему хаков ой как много всего... Причем восновном для ИЕ.
Тут 2 разных подхода: или
скриптом определять броузер и загружать для него свои стили, или писать css-хаки в коде.
Оставим скрипт на этот раз в покое.
Итак, в процессе поиска хака для оперы, наткнулась на замечательный способ прописать в коде и таки работает в Opera 9,27.
А вот Opera 9,5 и выше это демонстративно игнорирует...
Копаем дальше... И находим следующее:
@media all and (min-width:0px) {
head~body #selector {
/* styles */
}
}
Работает и в Opera 9.27, и в Opera 9.5
Но не все таг гладко, как хотелось бы. Открываем сафари (в котором все до хака было нормально), и видим ,что наш хак для оперы подействовал и там, в результате чего страница отображается не так, как нам хотелось.
Поэтому приходится применить хак для сафари.
Запись получим следующую:
body:last-child:not(:root:root) #selector {
/* styles здесь нам необходимо переопределить стили, прописанные только что для оперы*/
}
Итого, чтоб применить хак для оперы, необходимо написать такие стили:
#selector {
/*стили сайта для всех броузеров*/
}
@media all and (min-width:0px) {
head~body #selector {
/* переопределяем стили для Opera */
}
}
body:last-child:not(:root:root) #selector {
/* переопределяем стили для Opera назад для Safari */
}
Раскопки велись
тут ,
тут и
тут