Тема: IE6 и min-width
Показать сообщение отдельно
  #7 (permalink)  
Старый 28.03.2010, 00:58
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

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

Т.е., по-хорошему, нужно сделать примерно так:
  1. скидываем старое значение style.width в переменную
  2. устанавливаем style.width в auto !important
  3. считаем clientWidth
  4. устанавливаем обратно style.width
  5. если clientWidth, посчитанный ранее, оказался меньше, чем надо,— кладем нужное значение, так, чтобы expression его вернул

Но тут есть одно но: для того, чтобы посчитать clientWidth, нужно сделать reflow, а для этого нужно значение самого expression, и ie6 вываливается в бесконечную рекурсию, а после этого очень скоро падает. :/
Ответить с цитированием