Динамическое изменение высоты
Нужно реализовать сабж для блока, в который загружается баннер яваскриптом. Я так понимаю, что раз грузится он уже _после_ отрисовки страницы пользовательским агентом, изменять высоту получится также только яваскриптом. Но этот вариант, как мне кажется, кривоват, т.к. высота страницы будет прыгать на ходу. Что предложит мудрый All? :)
Вы неправильно понимаете. Почти все layout-объекты HTML "растягиваются" автоматически при добавлении в них дополнительного содержимого, которое не помещается.
Если не задать его высоту явно, то нижнее содержимое, тоже абсолютно спозиционированное таки не будет знать, к чему ему прилегать. А высота картинки становится известна только после загрузки страницы.
По-разному поступить можно, первое, что приходит в голову - указать параметры картинки width=х height=у, вторым сделать table, или какие-нибудь постоянные объекты на странице паралельно ширине и высоте, например < td width="80%" >, дальше даже думать не хочется.
un_named, в том то и дело, что параметры картинки могут различаться, а грузится она javascript'ом и не понятно, откуда их брать. Менять высоту на ходу яваскриптом? Можно же получить размеры картинки и установить такие же для ее родительского блока?
getComputedStyle() и событие onload. Его можно даже на <img> повесить вроде
Можно, после ее загрузки. Смотри
Цитата:
...параметры картинки могут различаться, а грузится она javascript'ом и не понятно, откуда их брать. Менять высоту на ходу яваскриптом? Можно же получить размеры картинки и установить такие же для ее родительского блока?
По-моему нет смысла, ведь если размеры станут известны только после загрузки, то картинка и так по-идее должна выровняться на свои действительные размеры, если не использованы какие-то особые соображения.
Могу посоветовать то же самое, что уже указал выше, только параметры делать с запасом, чтобы любая из возможных картинок гарантировано поместилась, но есть минус - если картинка будет очень мала по отношению к выделенному для нее месту, то это может сказаться на дизайне, и возможно окажется не красиво.
Когда займусь этим проектом опять - напишу. Хотя ничего нового я никому не поведаю, un_named правильно сказал, что высота блока автоматически подстроится под высоту содержимого. Только вот непонятное поле в пару пикселей непонятно откуда...
В общем, всем спасибо :)
AJAX и формирование содержимого страницы на основе ответов сервера. Плюс всякие украшательства вроде сворачивающихся/всплывающих "окон" (читай слоев).