плавающие блоки переносятся на следующую строку

registered

Создатель
Регистрация
13 Апр 2012
Сообщения
45
Реакции
4
написал плагин на jQuery, который меняет ширину элементов так, как необходимо мне.
всё исправно работает, однако, на некоторых масштабах в большинстве браузеров (кроме оперы) последний плаваюший элемент переносится на следующую строку, хотя не должен.
например:
3 div`a, ширина: 20%, 80%, 20%
итого: 305px, 915px, 305px при ширине документа 1525px
калькулятор показывает нам, что всё должно уместиться, а IE считает иначе, и переносит последний DIV.

все числа контролирую тестовыми выводами.
в скрипте все числа задаются в явном виде, а не процентами, так как при указании в процентах в IE перенос происходил вообще всегда

сталкивался ли кто-нибудь с подобным?
 
Если блоки флоатами, то для ие всегда размер приходится задавать немного меньше. Обычно делаю отдельные стили с хаками и фиксами только для ие.
 
Разные браузеры вычисляют ширину по-разному.
Если в одном браузере значение padding включается в указанное значение width (тоесть если widtn:305px; а padding:10px, то width остаётся 305px, а ширина полезной области блока станет 285px;), то в другом браузере результирующая ширина будет составлять width + padding - тоесть 325px. обратите внимание на этот момент.

Также вы не уточнили версию IE. В IE6 и, если не указан doctype то и в IE7, существует так называемый 3px bug - когда к блоку добавляются 3 лишних пиксела.
 
Разные браузеры вычисляют ширину по-разному.
Если в одном браузере значение padding...
в целях тестирования все марджины, пэддинги и прочие бордеры убраны вот таким кодом css:
Код:
*{
    margin: 0;
    padding: 0;
    border: 0;
}
Также вы не уточнили версию
например, IE9.
Если блоки флоатами, то для ие всегда размер приходится задавать немного меньше.
разница всего один пиксель; это явно какой-то баг:
стоит уменьшить любой из блоков на один пиксель, как последний блок переносится на место, однако, в конце (справа) появляется полоска в 1 px
 
Заметил в IE, что если в коде есть перевод строки, добавляется 1 пиксель
имеется в виду тег <br /> ?
его не использовал.

в общем, пока программно уменьшаю последний блок на 1px.
конечно, это не сильно заметно, и не особо парит;
однако, бубен!
если кто в курсе, как обойтись без бубна - welcome.
 
попробуйте white-space:nowrap; и поменять свойство display у блоков. иногда в ие помогает.
и используйте reset css, там такие штуки как
Код:
*{
    margin: 0;
    padding: 0;
    border: 0;
}
уже сразу прописаны.
 
Я чего-то не понял или 20%+80%+20%=120% если вы в процентах указываете.
По теме:
У какого-то блока ширина больше чем надо, поэтому все и прыгает. Проверьте margin, padding, border для всех блоков. Может быть во внутреннем блоке margin задан, вариантов много. Если еще не сделали, код в студию, и стили
 
Назад
Сверху