2012-10-01 34 views
46

Estoy tratando de agregar un mapa de Google a mi diseño, que se supone que responde. He usado el mismo código que funciona para las imágenes ... Pero por alguna razón, el iframe del mapa cambia de tamaño con dimensiones que no escogí.Iframe receptivo (google maps) y cambio de tamaño extraño

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>​ 

y el CSS

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

o se puede ver en vivo y jugar con él aquí: http://jsfiddle.net/corinne/pKUzU/ (si se corta distancia de la CSS, verá lo quiero decir).

Mi pregunta es cómo hacer que este iframe/mapa responda sin perder su altura deseada?

Respuesta

95

Esta solución es de Dave Rupert/Chris Coyier (creo). Requiere un envoltorio div pero funciona bastante bien.

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

El código anterior se llenará de contenedor que mantenga su relación de aspecto original. Esto es bueno para las redes receptivas. Puede colocar esto en el bloque de cuadrícula que desee y se ajustará automáticamente, incluso cuando se cambie el tamaño de las cosas. – cpg

+2

muchas gracias, funciona, ¡milagro! :) Ojalá pudiera darle algunos puntos, pero desafortunadamente todavía soy un novato aquí! – Corinne

+0

@cpg ¿Tiene una referencia para este código? Intentando entenderlo mejor. Específicamente, parece funcionar sin la necesidad de desbordamiento: oculto, posiblemente debido al 100% del tamaño del iframe. – iamkeir