Доброго времени суток! Подскажите, пожалуйста, почему когда я НЕ задаю размеры div’a (в котором у меня должна отображаться карта) НЕ отображается карта, а если устанавливаю заранее width и height div’a - то отображается? Заранее огромное спасибо!
Да, framework в данном случае - OpenLayers.
В чём проблема - вы уже сами поняли: в том, что размер контейнера карты должен быть задан в явном виде.
Если вы владеете javascript или css, то вам не составит труда сделать так, чтобы он был задан. Но раз вы не решили проблему сами, значит не владеете.
Если не владеете - есть два пути: изучить это самостоятельно или чтобы за вас проект сделал кто-то другой, кто это умеет (на добровольной или коммерческой основе). А “пошаговые инструкции” вам явно не помогут - аналогичных проблем будет еще сотни, так что, вы с каждой будете по форумам побираться, чтобы за вас ее кто-то решил? Так дела не делаются…
width емним можно не задавать, по умолчанию будет на всю доступную ширину. Чтобы сработал height в процентах надо убедиться что он нормально задан у всех вышестоящих элементов. Проверьте что у вас body занимает 100 высоты (по умолчанию это не так).
Я сделал с помощью js, чтобы перед загрузкой страницы узнавалось какого размера окно браузера у пользователя и делался div такого размера. Так работает, но когда я загрузил страницу и потом меняю размер окна - размер div’a уже не меняется. Неужели придется использовать еще и ajax чтобы размер менять так сказать в режиме “онлайн”, и вообще не уверен я что карта поменяет размер без обновления страницы с такой реализацией. Поэтому я и решил спросить почему на некоторых сайтах используются эти карты и размеры контейнера под них не заданы в явном виде - а всё равно карта грузится на весь экран. Вот например как тут: http://toolserver.org/~osm/locale/__all.html
Spelot, leaflet/openlayers тут ни при чем. Если высота для дива не указана - то она нулевая и вашу карту просто не видно. Можете убрать скрипт инициализации карты, задать ядовитый цвет бэкгроунда и убедиться что его не видно на страничке. На openstreetmap.org высота дива с картой указывается явно, через яваскрипт.
Вы просто вбейте в гугле header/footer css example или посмотрите как заверстывается страничка нужного вам вида. Соберите у себя такую же, без карты, просто выделив цветом нужный див. Потом добавите ему id и скрипт инициализации карты.
При чем тут ajax, вы вот повесили установку размеров окна на загрузку страницы, но можно ведь с тем же успехом сделать это и на событие изменения окна.