Twitter Bootstrap CSS che interessa Google Maps


147

Sto usando Twitter Bootstrap e ho una mappa di Google.

Le immagini sulla mappa, ad esempio un marcatore, sono distorte dal CSS in Bootstrap.

Nel CSS Bootstrap c'è:

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

Quando disabilito la max-widthproprietà tramite Firebug, l'immagine dell'indicatore appare come normale. Come posso evitare che il CSS Bootstrap influisca sulle immagini delle mappe di Google?


Risposte:


187

Con Bootstrap 2.0, questo sembrava fare il trucco:

#mapCanvas img {
  max-width: none;
}

6
Assicurati di aggiungere #mapCanvas img { width: auto; display:inline; }come indicato di seguito da @nodrog
— jlb

Dalle note di rilascio di Bootstrap 2.0.3: "Corretta la regressione nel supporto delle immagini reattive a partire dalla 2.0.1. Abbiamo aggiunto nuovamente la larghezza massima: 100%; alle immagini per impostazione predefinita. L'abbiamo rimosso nella nostra ultima versione da quando avevamo persone lamentarsi dell'integrazione di Google Maps e di altri progetti, ma ora stiamo prendendo una posizione diversa su queste cose e richiederemo agli sviluppatori di apportare queste modifiche alla loro fine ".
— kevinwmerritt,

Cordiali saluti: Note di rilascio di Bootstrap 2.0.4: "Aggiunti CSS speciali per impedire la larghezza massima: 100%; sulle immagini da errori nel rendering di Google Maps."
— kevinwmerritt,

È strano che alla fine abbiano deciso di codificare l'ID, non usare invece la classe
— zerkms il

1
#mapCanvas non ha funzionato per me. Ho appena usato la mia classe .map che ho usato come contenitore di Google Maps e ha fatto il trucco. GRAZIE!
— Fydo,

80

C'è anche un problema con i selettori a discesa per terreno e sovrapposizioni, l'aggiunta di entrambi risolverà i problemi ...

#mapCanvas img { 
  max-width: none;
}

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

Il secondo stile risolverà altri problemi con il terreno e la casella di sovrapposizione in alcuni browser.


Sì ! tutto sembra risolto con questo combinato con la risposta contrassegnata come "accettata" sopra. Grazie.
— Mat,

funziona come un incantesimo in Firefox 17 ma non in Chrome 23. Non so perché, ma ho trovato la soluzione basta aggiungere questo:$('.map').on('shown',function(){ google.maps.event.trigger(map, 'resize'); });
— yosafatade

Sei un genio. Grazie mille. Questo mi stava facendo impazzire :-)
— Orso

20

Dai un ID alla tua tela della mappa map_canvas.

Questo commit bootstrap include la max-width: nonecorrezione per l'id map_canvas(ma non funzionerà per mapCanvas).


Penso che solo per cambiare l'id sia necessario in v2.2.2
— jacktrades

non riesco a trovare tale id nel file css
— Muhaimin

@robd: Solo per curiosi, perché non funzionerà se non con map_canvas.
— ArunRaj,

@ArunRaj perché la correzione in bootstrap è codificata nell'id #map_canvas (vedere il commit collegato). In ogni caso, questa risposta è probabilmente obsoleta ora dato che ha quasi 2 anni.
— robd,

11

Nessuna di queste risposte ha funzionato per me, quindi sono andato al mio div e ho guardato i suoi figli ho visto un nuovo div con classe "gm-style", quindi ho inserito questo nel mio CSS:

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

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

..e questo ha risolto il problema per me.


+1 questa è l'unica risposta che ha funzionato per me per correggere gli strani controlli "zoom". (Bootstrap 2)
— philfreo,

Ha funzionato anche per me. Good spotting :)
— jeje

Grazie, ha funzionato anche per me. L'unica risposta che ha funzionato per me per correggere gli strani controlli "zoom". (con Fondazione 5)
— Steffi,

3

Volete scavalcare la regola della larghezza massima nella sezione CSS usando la larghezza massima: nessuna; Questo sembra essere il modo per aggirare questo problema


2

La modifica di #MapCanvas non ha funzionato per noi utilizzando gmap4rails gem, ma ha funzionato quando siamo passati a

.map_container img {
    max-width: none;
}

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

2

Sto usando gmaps4rails, questa correzione l'ha fatto per me:

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

1

l'ultimo twitter bootstrap 2.0.4 include direttamente questa correzione.

Se stai avvolgendo i tuoi contenuti in a (div class = "container") come nella pagina demo di Twitter Bootstrap, dovresti aggiungere uno style = "height: 100%"


1

C'è anche un problema con la stampa di mappe usando Stampa in qualsiasi browser. Il img { max-width: 100% !important; }non saranno fissati dal codice di cui sopra: è necessario aggiungere una !importantdichiarazione in questo modo:

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

0

Ho anche dovuto disattivare box-shadow e, a causa dell'ordine delle mie inclusioni, ho aggiunto la! Bandiera importante.

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

1
Questo ha funzionato per me. Se voterai qualcuno, almeno dovresti dire il perché.
— Redtopia,

0

Tutte le risposte sono state max-widht: nessuna

per me, altezza massima: eredità lavorata .....

Le persone usano #map, #map_canvas, ecc. Guarda il tuo genitore div. Se è blu, allora sarà #blue img {}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.