Twitter Bootstrap CSS memengaruhi Google Maps


147

Saya menggunakan Bootstrap Twitter, dan memiliki peta Google.

Gambar pada peta, seperti marker sedang miring oleh CSS di Bootstrap.

Dalam Bootstrap CSS ada:

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

Ketika saya menonaktifkan max-widthproperti menggunakan Firebug, gambar penanda muncul seperti biasa. Bagaimana saya bisa mencegah Bootstrap CSS mempengaruhi gambar peta Google?


Jawaban:


187

Dengan Bootstrap 2.0, ini sepertinya berhasil:

#mapCanvas img {
  max-width: none;
}

6
Pastikan untuk menambahkan #mapCanvas img { width: auto; display:inline; }seperti yang disebutkan di bawah ini oleh @nodrog
— jlb

Dari catatan rilis Bootstrap 2.0.3: "Regresi tetap pada gambar responsif mendukung pada 2.0.1. Kami telah menambahkan kembali max-width: 100%; ke gambar secara default. Kami menghapusnya dalam rilis terakhir kami karena kami memiliki orang-orang mengeluh tentang integrasi Google Maps dan proyek lainnya, tetapi kami mengambil sikap berbeda sekarang tentang hal-hal ini dan akan meminta pengembang untuk membuat tweak ini pada akhirnya. "
— kevinwmerritt

FYI: Catatan rilis Bootstrap 2.0.4: "Menambahkan CSS khusus untuk mencegah lebar maksimum: 100%; pada gambar dari mengacaukan rendering Google Maps."
— kevinwmerritt

Itu aneh bahwa mereka akhirnya memutuskan untuk hardcode id, bukan menggunakan kelas sebagai gantinya
— zerkms

1
#mapCanvas tidak berfungsi untuk saya. Saya hanya menggunakan kelas .map yang saya gunakan sebagai wadah google maps dan itu berhasil. TERIMA KASIH!
— Fydo

80

Ada juga masalah dengan pemilih dropdown untuk medan dan hamparan, menambahkan keduanya akan memperbaiki masalah ...

#mapCanvas img { 
  max-width: none;
}

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

Gaya kedua akan menyortir masalah lain dengan kotak terrain dan overlay di beberapa browser.


Iya ! semuanya tampaknya sudah diperbaiki dengan yang satu ini dikombinasikan dengan jawaban yang ditandai sebagai "diterima" di atas. Terima kasih.
— Mat

bekerja seperti pesona di firefox 17 tetapi tidak di chrome 23. tidak tahu mengapa tetapi saya menemukan solusinya tambahkan saja ini:$('.map').on('shown',function(){ google.maps.event.trigger(map, 'resize'); });
— yosafatade

Anda jenius. Terima kasih banyak. Ini membuatku gila :-)
— Beruang

20

Berikan id kanvas peta Anda map_canvas.

Komit bootstrap ini mencakup max-width: noneperbaikan untuk id map_canvas(tetapi tidak akan bekerja untuk mapCanvas).


Saya pikir hanya untuk mengubah id diperlukan di v2.2.2
— jacktrades

saya tidak dapat menemukan id dalam file css
— Muhaimin

@robd: Hanya ingin tahu, Mengapa itu tidak akan berfungsi kecuali map_canvas.
— ArunRaj

@ArunRaj karena perbaikan di bootstrap hardcoded ke id #map_canvas (lihat komit terkait). Bagaimanapun, jawaban ini mungkin sudah usang sekarang mengingat sudah hampir 2 tahun.
— Robd

11

Tidak satu pun dari jawaban ini yang bekerja untuk saya, jadi saya masuk ke div saya dan melihat anak-anaknya, saya melihat div baru dengan kelas "gm-style", jadi saya meletakkan ini di CSS saya:

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

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

..dan itu memecahkan masalah bagi saya.


+1 ini satu-satunya jawaban yang berfungsi untuk memperbaiki kontrol "zoom" yang aneh. (Bootstrap 2)
— philfreo

Bekerja untuk saya juga. Tempat yang bagus :)
— jeje

Terima kasih, bekerja untuk saya juga. Satu-satunya jawaban yang berhasil bagi saya untuk memperbaiki kontrol "zoom" yang aneh. (dengan Yayasan 5)
— Steffi

3

Anda ingin menggunakan aturan max-width di bagian CSS dengan menggunakan max-width: none; Ini tampaknya menjadi cara mengatasi masalah ini


2

Mengubah #MapCanvas tidak berfungsi untuk kami menggunakan permata gmap4rails, tetapi berhasil ketika kami mengubahnya

.map_container img {
    max-width: none;
}

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

2

Saya menggunakan gmaps4rails, perbaikan ini melakukannya untuk saya:

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

1

bootstrap twitter terbaru 2.0.4 termasuk perbaikan ini secara langsung.

Jika Anda membungkus konten Anda di a (div class = "container") seperti di halaman demo bootstrap twitter, Anda harus menambahkan style = "height: 100%"


1

Ada juga masalah dengan mencetak peta menggunakan Cetak di browser apa pun. Tidak img { max-width: 100% !important; }akan diperbaiki oleh kode di atas: Anda perlu menambahkan !importantdeklarasi seperti:

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

0

Saya juga harus mematikan bayangan kotak, dan karena urutan termasuk saya, saya menambahkan bendera! Penting.

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

1
Ini berhasil untuk saya. Jika Anda akan memilih seseorang, Anda setidaknya harus mengatakan mengapa.
— Redtopia

0

Semua jawaban max-widht: tidak ada

bagi saya, max-height: inherit berfungsi .....

Orang-orang menggunakan #map, #map_canvas, dll. Lihatlah div induk Anda. Jika biru, maka akan menjadi #blue img {}

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.