Думаю, большинство разработчиков уже успели столкнуться с багом при обработке вложенных float’ов в седьмой Опере.
Наиболее часто это всплывает при работе с горизонтальными списками:
ul {
float:left;
}
li {
float:left;
}
Если для списка не задать ширину, то его элементы феерично выстроятся по вертикали. Во многих случаях проблему удается обойти обходными путями, но, к сожалению, не всегда.
Чип и Дейл спешат на помощь, собственно. Небольшая js-функция, которая возвращает все на свои места (для определения версии браузера используется Browser detect от PPK).
function fixOpera () {
if (BrowserDetect.version < 8) {
var listWidth = 0;
var list = document.getElementById('test');
var listItems = list.getElementsByTagName('li');
for (var i = 0; i < listItems.length; i ++) {
listWidth += listItems[i].offsetWidth;
}
list.style.width = listWidth;
}
}
По необходимости меняем теги на нужные.
Рабочий пример. Для заценки необходима седьмая Опера, разумеется.