Twitter Bootstrap CSS, das sich auf Google Maps auswirkt


147

Ich verwende Twitter Bootstrap und habe eine Google-Karte.

Bilder auf der Karte, z. B. Markierungen, werden vom CSS in Bootstrap verzerrt.

Im Bootstrap-CSS gibt es:

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

Wenn ich die max-widthEigenschaft mit Firebug deaktiviere , wird das Markierungsbild wie gewohnt angezeigt. Wie kann ich verhindern, dass das Bootstrap-CSS die Google Maps-Bilder beeinflusst?


Antworten:


187

Mit Bootstrap 2.0 schien dies den Trick zu tun:

#mapCanvas img {
  max-width: none;
}

6
#mapCanvas img { width: auto; display:inline; }Stellen Sie sicher, dass Sie wie unten erwähnt von @nodrog
jlb

In den Versionshinweisen zu Bootstrap 2.0.3 heißt es: "Die Regression bei der Unterstützung reaktionsfähiger Bilder ab 2.0.1 wurde behoben. Wir haben die maximale Breite: 100%; standardmäßig wieder zu Bildern hinzugefügt. Wir haben sie in unserer letzten Version entfernt, da wir Leute hatten Wir beschweren uns über die Integration von Google Maps und andere Projekte, aber wir nehmen jetzt eine andere Haltung zu diesen Dingen ein und werden von den Entwicklern verlangen, dass sie diese Verbesserungen am Ende vornehmen. "
Kevinwmerritt

Zu Ihrer Information: Versionshinweise zu Bootstrap 2.0.4: "Spezielles CSS hinzugefügt, um eine maximale Breite von 100% zu verhindern. Bei Bildern wird das Rendern von Google Maps durcheinander gebracht."
Kevinwmerritt

Das ist seltsam, dass sie sich endlich entschieden haben, die ID fest zu
codieren

1
#mapCanvas hat bei mir nicht funktioniert. Ich habe gerade meine .map-Klasse verwendet, die ich als Google Maps-Container verwendet habe, und sie hat es geschafft. VIELEN DANK!
Fydo

80

Es gibt auch ein Problem mit den Dropdown-Selektoren für Gelände und Überlagerungen. Wenn Sie beide hinzufügen, werden die Probleme behoben ...

#mapCanvas img { 
  max-width: none;
}

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

Der zweite Stil führt in einigen Browsern zu anderen Problemen mit dem Gelände und der Überlagerungsbox.


Ja ! Alles scheint fest mit diesem zu sein, kombiniert mit der Antwort, die oben als "akzeptiert" markiert ist. Vielen Dank.
Mat

funktioniert wie ein Zauber in Firefox 17, aber nicht in Chrome 23. Ich weiß nicht warum, aber ich fand die Lösung, füge einfach $('.map').on('shown',function(){ google.maps.event.trigger(map, 'resize'); });
Folgendes

Du bist ein Genie. Vielen Dank. Das hat mich wahnsinnig gemacht :-)
Bär

20

Geben Sie Ihrer Map Canvas Div eine ID von map_canvas.

Dieses Bootstrap-Commit enthält das max-width: noneUpdate für die ID map_canvas(funktioniert jedoch nicht mapCanvas).


Ich denke, nur um die ID zu ändern, ist in v2.2.2
Jacktrades

Ich kann solche ID nicht in CSS-Datei finden
Muhaimin

@robd: Nur für Neugierige, warum es nur für map_canvas funktioniert.
ArunRaj

@ArunRaj, da der Fix im Bootstrap fest mit der ID #map_canvas codiert ist (siehe das verknüpfte Commit). In jedem Fall ist diese Antwort wahrscheinlich veraltet, da sie fast 2 Jahre alt ist.
Robd

11

Keine dieser Antworten funktionierte für mich, also ging ich zu meinem Div und sah seine Kinder an. Ich sah einen neuen Div mit der Klasse "gm-style", also habe ich dies in mein CSS aufgenommen:

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

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

..und das hat das Problem für mich gelöst.


+1 Dies ist die einzige Antwort, die für mich funktioniert hat, um die seltsamen "Zoom" -Steuerelemente zu korrigieren. (Bootstrap 2)
Philfreo

Hat auch für mich gearbeitet. Gute
Beobachtung

Danke, hat auch für mich gearbeitet. Die einzige Antwort, die für mich funktioniert hat, um die seltsamen "Zoom" -Regler zu reparieren. (mit Stiftung 5)
Steffi

3

Sie möchten die Max-Width-Regel im CSS-Abschnitt überschreiben, indem Sie Max-Width verwenden: none; Dies scheint der Weg um dieses Problem zu sein


2

Das Ändern der #MapCanvas hat bei uns mit gmap4rails gem nicht funktioniert, aber bei der Umstellung auf

.map_container img {
    max-width: none;
}

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

2

Ich benutze gmaps4rails, dieses Update hat es für mich getan:

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

1

Der neueste Twitter Bootstrap 2.0.4 enthält diesen Fix direkt.

Wenn Sie Ihren Inhalt wie auf der Demoseite des Twitter-Bootstraps in a (div class = "container") einbinden, sollten Sie einen style = "height: 100%" hinzufügen.


1

Es gibt auch ein Problem beim Drucken von Karten mit Print in einem beliebigen Browser. Das img { max-width: 100% !important; }wird durch den obigen Code nicht behoben: Sie müssen eine Deklaration wie folgt hinzufügen !important:

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

0

Ich musste auch Box-Shadow ausschalten und aufgrund der Reihenfolge meiner Includes habe ich die! Wichtige Flagge hinzugefügt.

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

1
Das hat bei mir funktioniert. Wenn Sie jemanden abwählen wollen, sollten Sie zumindest sagen, warum.
Redtopia

0

Alle Antworten waren maximal: keine

für mich max-höhe: erben funktioniert .....

Die Leute benutzen #map, #map_canvas usw. Sehen Sie sich Ihr übergeordnetes div an. Wenn es blau ist, ist es #blue img {}

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.