| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Вёрстка веб-сайтов > Проблема с отображением div? |
| Автор: zodiac 7.12.2010, 11:47 | ||||
| Здравствуйте! Я сделал некоторое подобие аккордиона с применением слоев. Это корректно отображается в IE, но в Firefox 3.6 слой отказывается разворачиваться. Когда выполняется определенная функция, свойствам слоя устанавливается height и visibility=visible. Предпологается, что слой растянется и все что находится ниже его, сдвинется вниз, т.е. все будет работать как нормальный аккордеон. В IE все так и работает, но в Firefox элементы, которые расположены ниже слоя, отказываются сдвигаться, и происходит наслоение, из-за чего содержимое слоя становится нечитабельным( Стиль слоя:
После выполнения функции:
В чем может быть проблема? |
| Автор: Cheburek 7.12.2010, 11:48 |
| Используй лучше, display:none; для скрытия элемента |
| Автор: SelenIT 7.12.2010, 12:35 |
Этот height берется из реальной высоты содержимого (scrollHeight) или "от балды"? Если второе — слой и должен раздвигать окружение только на эту заданную величину, а всё, что сверх, при overflow:visible и должно "наслаиваться", такой стандарт (IE в режиме совместимости его не соблюдает, но это его проблемы). Если надо раздвинуть на фактическую высоту содержимого — имхо, проще всего задать height:auto. А зачем здесь игры с visibility, я честно говоря вообще не понял... |
| Автор: zodiac 7.12.2010, 16:09 |
| Cheburek, спасибо, попробую! SelenIT, height передается функции (раскрывает слой, устанавливая ему стили) в качестве параметра и подбирается к каждому конкретному блоку вручную... Но суть в том, что даже если height=1000, реальная высота слоя (в данном случае он хорошо виден, поскольку установлен цвет фона) в лучшем случае 10-15 пикселей, т.е. стандартная высота строки. Содержимое слоя исправно показывается поверх остального контента страницы. Visibility как раз и есть ключевой фактор, тк для скрытия слоя (и закрытия аккордеона) ставится visibility='hidden', слой убирается с глаз долой, и height=0, для верности. Чтобы открыть его содержимое - обратные действия. Попробую использовать свойство display вместо всего вышеописанного, как посоветовал Cheburek... |
| Автор: zodiac 7.12.2010, 17:32 |
| Если использовать свойство display, все работает как надо!) Спасибо за помощь! |