2012-10-01 2 views
46

Я пытаюсь добавить карту Google в свой дизайн, который должен быть отзывчивым. Я использовал тот же код, который работает для изображений ... Но по какой-то причине iframe карты изменяет размеры, которые я не выбрал.Отзывчивый iframe (карты google) и странное изменение размера

HTML

<iframe src="http://maps.google.com/maps/ms?vpsrc=6&amp;ctz=-480&amp;ie=UTF8&amp;msa=0&amp;msid=210840796990572645528.00049770919ccd6759de3&amp;t=m&amp;ll=30.751278,68.203125&amp;spn=84.446143,175.429688&amp;z=2&amp;output=embed" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="635" height="300"> </iframe>​ 

и CSS

iframe { 
max-width: 100%; 
height: auto; 
width: auto; /*IE8 bug fix*/ 
vertical-align: middle;} 

Или вы можете увидеть его вживую и играть с ним здесь: http://jsfiddle.net/corinne/pKUzU/ (если вы срезаем CSS, вы увидите, что Я имею в виду).

Мой вопрос заключается в том, как сделать этот iframe/map отзывчивым без потери желаемой высоты?

ответ

95

Это решение от Dave Rupert/Chris Coyier (я думаю). Для этого требуется оболочка div, но работает очень хорошо.

HTML

<div class="iframe-rwd"> 
     <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=Seattle,+WA&amp;aq=0&amp;oq=seattle&amp;sll=37.822293,-85.76824&amp;sspn=6.628688,16.907959&amp;t=h&amp;ie=UTF8&amp;hq=&amp;hnear=Seattle,+King,+Washington&amp;z=11&amp;ll=47.60621,-122.332071&amp;output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=Seattle,+WA&amp;aq=0&amp;oq=seattle&amp;sll=37.822293,-85.76824&amp;sspn=6.628688,16.907959&amp;t=h&amp;ie=UTF8&amp;hq=&amp;hnear=Seattle,+King,+Washington&amp;z=11&amp;ll=47.60621,-122.332071" style="color:#0000FF;text-align:left">View Larger Map</a></small> 
    </div> 

CSS

.iframe-rwd { 
position: relative; 
padding-bottom: 65.25%; 
padding-top: 30px; 
height: 0; 
overflow: hidden; 
} 
.iframe-rwd iframe { 
position: absolute; 
top: 0; 
left: 0; 
width: 100%; 
height: 100%; 
} 
+1

Код выше будет заполнить это контейнер и держать его исходное соотношение сторон. Это хорошо для гибких сеток. Вы можете просто вставить это в любой блок сетки, который вам нравится, и он автоматически будет автоматически изменяться даже при изменении размера. – cpg

+2

большое спасибо, это работает, чудо! :) Хотел бы я дать вам несколько моментов, но, к сожалению, я все еще новичок здесь! – Corinne

+0

@cpg У вас есть ссылка на этот код? Попытка понять это лучше. В частности, он работает без необходимости переполнения: скрытый, возможно, из-за 100% -ного размера iframe? – iamkeir

Смежные вопросы