Глюки при установке className в ИЕ6
Устанавливаю JS-ом className у дива. Иногда глючит, не могу понять почему. Причем это происходит так. Устанавливаю className. Див растягивается до бесконечности по ширине. Захожу в Сервис/свойства обозревателя/Ок и вуаля, всё встало на свои места.
Чё блин за бред??? |
Ну, вы хотя бы ссылку на пример оставили. Всех "особенностей" IE6 и не упомнишь.
|
я бы вставил, но вот это всё динамически делается.
Вообщем там происходит примерно следующее var El = document.getElementById(ElId); if(ElClassName && ElClassName != '') { El.className = ElClassName; } if(ElContent && ElContent != '') { El.innerHTML = ElContent; } Я знаю есть проблемы с путаньем name и id при getElementById, но name я вообще не использую. В связи с вышеописанным, я думаю что возможно ИЕ не хочет обновить до конца DOM. А когда я вызваю менюшку то он это делает. Может есть способ заставить браузер обновить дерево? |
Цитата:
|
ну эта статья мне ничем не помогла...
|
а есть какой нибудь тетод у div-а типа repaint() или подобное?
|
Цитата:
|
Цитата:
|
Похоже не я один с такой проблемой.
Мне кажется, что проблема с CSS классом обусловлена проблемой в обновлении DOM при записи innerHTML контента. Я даже иногда наблюдал ситуации "увечья" отображения без присваивания классов, а лишь с изменением контента. А эта штука в ИЕ лечится внедрением элементов, вроде, исходя из нагугленного мной. Но я не пробовал еще. Как думаете? |
Можно попробовать стандартные таблетки: position: relative или zoom: 1.
|
kostyl, голубчик,
а Вы "width:100%" или отрицательные поля, случаем, нигде не используете? Ошибок скрипта нет ли? Что говорит IE Developer Toolbar? |
Когда уже ничего не помогало методом прямого перебора было установленно, что во всем виноват контейнер формы, который находился в недрах контента обновляющего проблемный div. Вот код одного из подконтейнеров:
Код:
.form { |
Ааа, понятно....
)) |
kostyl,
Я так понял, .form и .text сиблинги. Для IE6 есть таблэтка против этого, все флоаты делаем display:inline. С точки зрения W3C это бред: для всех элементов с float не "none", position не "absolute" или "fixed" и display не "none" значение display игнорируется и устанавливается в "block". Но майкрософтовскому продукту это помогает. |
Просто много таких кусков, которые хочется сделать, чтобы они выглядели как таблица из двух колонок. Но надо делать именно блоками, а я другого нормального способа кроме этого не знаю. Статика отображается вполне приемлемо, но динамическая замена контента в ИЕ6 выражается в неприятную бяку...
|
Часовой пояс GMT +3, время: 18:57. |