Расчет ширины элементов при перемещении в Opera 11. * - PullRequest
0 голосов
/ 01 июня 2011

Я имею дело с проблемой в бета-версии Opera 11.5 (я предполагаю, что это относится ко всем выпускам Opera 11), когда плавающему элементу блочного уровня (неупорядоченному списку) присваивается произвольная фиксированная ширина и заставляя дочерние элементы переносить - так же, как в IE6.

Элемент с плавающей точкой справа и в настоящее время не имеет братьев и сестер. В моей таблице стилей не указана ширина для списков.

Мне было интересно, какую логику Opera использует для вычисления ширины в этих случаях?

Я загрузил изображение, сравнивающее Opera 11.5 с Firefox 4.1 с выводом Dragonfly / Firebug.

http://twitpic.com/55f79o/full

jsFiddle: http://jsfiddle.net/i_like_robots/HKAQ9/

Ответы [ 2 ]

2 голосов
/ 23 октября 2011

По моему мнению, это ошибка в Opera.

При расчете ширины элемента он вычисляется на основе суммы всех значений ширины дочерних элементов, но если у вас есть 2 элемента Div в качестве дочерних отображенийпоскольку элементы блока на самом деле ширина не является суммой обоих элементов.

Чтобы решить проблему, все, что вам нужно сделать, это указать ширину родительского элемента вместо того, чтобы позволить Opera вычислять.

@ clairesuzy - Вы можете увидеть ошибку в действии с кодом, который я разместил здесь http://www.go4expert.com/forums/showthread.php?t=27000

1 голос
/ 01 июня 2011

пока не знаю почему (посмотрю позже)

но Opera не нравится класс replace без ширины

.replace {
    display:block;
    overflow:hidden;
    text-indent:-9999px;
    background: no-repeat 0 0;
    width: 10px;
}

Я предполагаю, что класс (по его названию) предназначен для размещения фонового изображения для замены, так что все в порядке, чтобы добавить ширину?

Обновлено это связано с text-indent методом скрытия текста - без отступа текста это также хорошо в Opera

...