Twitter Bootstrap CSS que afecta a Google Maps


147

Estoy usando Twitter Bootstrap y tengo un mapa de Google.

Las imágenes en el mapa, como el marcador, están sesgadas por el CSS en Bootstrap.

En el CSS de Bootstrap hay:

img {
    border: 0 none;
    height: auto;
    max-width: 100%;
}

Cuando desactivo la max-widthpropiedad usando Firebug, la imagen del marcador aparece como normal. ¿Cómo puedo evitar que el CSS Bootstrap afecte las imágenes de los mapas de Google?


Respuestas:


187

Con Bootstrap 2.0, esto pareció funcionar:

#mapCanvas img {
  max-width: none;
}

66
Asegúrese de agregar #mapCanvas img { width: auto; display:inline; }como se menciona a continuación por @nodrog
jlb

De las notas de la versión de Bootstrap 2.0.3: "Se corrigió la regresión en el soporte de imágenes receptivas a partir de 2.0.1. Hemos agregado el ancho máximo: 100%; a las imágenes de forma predeterminada. Lo eliminamos en nuestra última versión desde que teníamos amigos "quejándonos de la integración de Google Maps y otros proyectos, pero ahora estamos adoptando una postura diferente sobre estas cosas y exigiremos a los desarrolladores que realicen estos ajustes".
kevinwmerritt

FYI: Notas de la versión de Bootstrap 2.0.4: "Se agregó CSS ​​especial para evitar el ancho máximo: 100%; en las imágenes se confunde el renderizado de Google Maps".
kevinwmerritt

Eso es extraño que finalmente han decidido Identificación del hardcode, no clase de uso en lugar
zerkms

1
#mapCanvas no funcionó para mí. Acabo de usar mi clase .map que utilicé como contenedor de google maps y funcionó. ¡GRACIAS!
Fydo

80

También hay un problema con los selectores desplegables para terreno y superposiciones, agregando que ambos solucionarán los problemas ...

#mapCanvas img { 
  max-width: none;
}

#mapCanvas label { 
  width: auto; display:inline; 
} 

El segundo estilo solucionará otros problemas con el terreno y el cuadro de superposición en algunos navegadores.


Si ! todo parece arreglado con este combinado con la respuesta marcada como "aceptada" arriba. Gracias.
Mat

funciona como un encanto en Firefox 17 pero no en Chrome 23. No sé por qué, pero encontré la solución, solo agregue esto:$('.map').on('shown',function(){ google.maps.event.trigger(map, 'resize'); });
yosafatade

Eres un genio. Muchas gracias. Esto me estaba volviendo loco :-)
Bear

20

Déle a su mapa lienzo div una identificación de map_canvas.

Esta confirmación de arranque incluye la max-width: nonecorrección para la identificación map_canvas(pero no funcionará mapCanvas).


Creo que solo es necesario cambiar la identificación en v2.2.2
jacktrades

no puedo encontrar esa identificación en el archivo css
Muhaimin

@robd: Solo por curiosidad, por qué no funcionará, excepto map_canvas.
ArunRaj

@ArunRaj porque la solución en bootstrap está codificada en el #map_canvas id (vea el commit vinculado). En cualquier caso, esta respuesta probablemente no esté actualizada dado que tiene casi 2 años.
robado

11

Ninguna de estas respuestas funcionó para mí, así que entré en mi div y miré a sus hijos. Vi un nuevo div con la clase "gm-style", así que puse esto en mi CSS:

.gm-style img {
    max-width: none;
  }

  .gm-style label {
    width: auto; display:inline;
  }

..y eso resolvió el problema para mí.


+1 esta es la única respuesta que me funcionó para solucionar los extraños controles de "zoom". (Bootstrap 2)
philfreo

A mí también me funcionó. Good spotting :)
jeje

Gracias, funcionó para mí también. La única respuesta que me funcionó fue arreglar los extraños controles de "zoom". (con Foundation 5)
Steffi

3

Desea anular la regla de ancho máximo en la sección CSS utilizando max-width: none; Esta parece ser la forma de solucionar este problema


2

Cambiar los #MapCanvas no funcionó para nosotros usando la gema gmap4rails, pero lo hizo cuando cambiamos a

.map_container img {
    max-width: none;
}

.map_container label {
    width: auto; display:inline;
}

2

Estoy usando gmaps4rails, esta solución lo hizo por mí:

.gmaps4rails_map img {
    max-width: none;
}
.gmaps4rails_map label {
    width: auto; display:inline;
}

1

La última versión de Twitter Bootstrap 2.0.4 incluye esta solución directamente.

Si está envolviendo su contenido en a (div class = "container") como en la página de demostración de twitter bootstrap, debe agregar un estilo = "height: 100%"


1

También hay un problema con la impresión de mapas con Print en cualquier navegador. El img { max-width: 100% !important; }código anterior no lo solucionará: debe agregar una !importantdeclaración como esta:

@media print {
  img {
    max-width: auto !important;
  }
}

0

También tuve que desactivar la sombra de caja, y debido al orden de mis inclusiones, agregué la bandera! Importante.

#mapCanvas img {
    max-width: none !important;
    box-shadow: none !important;
}

1
Esto funcionó para mí. Si vas a rechazar a alguien, al menos deberías decir por qué.
Redtopia

0

Todas las respuestas fueron max-widht: none

para mí, altura máxima: heredar trabajado .....

Las personas usan #map, #map_canvas, etc. Mira tu div padre. Si es azul, entonces será #blue img {}

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.