Twitter Bootstrap CSS ảnh hưởng đến Google Maps


147

Tôi đang sử dụng Twitter Bootstrap và có bản đồ Google.

Hình ảnh trên bản đồ, chẳng hạn như điểm đánh dấu đang bị CSS xiên trong Bootstrap.

Trong CSS Bootstrap có:

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

Khi tôi vô hiệu hóa thuộc max-widthtính bằng Fireorms, hình ảnh đánh dấu sẽ xuất hiện như bình thường. Làm cách nào tôi có thể ngăn CSS Bootstrap ảnh hưởng đến hình ảnh bản đồ của Google?


trả lời tại đây: github.com/zurb/foundation/issues/26
raklos

Câu trả lời:


187

Với Bootstrap 2.0, điều này dường như thực hiện thủ thuật:

#mapCanvas img {
  max-width: none;
}

6
Đảm bảo thêm #mapCanvas img { width: auto; display:inline; }như được đề cập dưới đây bởi @nodrog
jlb

Từ ghi chú phát hành Bootstrap 2.0.3: "Đã sửa lỗi hồi quy trong hỗ trợ hình ảnh phản hồi kể từ 2.0.1. Chúng tôi đã thêm lại độ rộng tối đa: 100%; cho hình ảnh theo mặc định. Chúng tôi đã xóa nó trong bản phát hành cuối cùng kể từ khi chúng tôi có người phàn nàn về việc tích hợp Google Maps và các dự án khác, nhưng hiện tại chúng tôi đang có lập trường khác nhau về những điều này và sẽ yêu cầu các nhà phát triển thực hiện những điều chỉnh này khi kết thúc. "
kevinwmerritt

FYI: Ghi chú phát hành Bootstrap 2.0.4: "Đã thêm CSS đặc biệt để ngăn chiều rộng tối đa: 100%; trên hình ảnh làm rối kết xuất đồ họa của Google Maps."
kevinwmerritt

Thật kỳ lạ khi cuối cùng họ đã quyết định sử dụng id mã hóa, không sử dụng lớp thay vào đó
zerkms

1
#mapCanvas không hoạt động với tôi. Tôi chỉ sử dụng lớp .map của tôi mà tôi đã sử dụng làm bộ chứa google maps và nó đã thực hiện thủ thuật này. CẢM ƠN!
Fydo

80

Ngoài ra còn có một vấn đề với bộ chọn thả xuống cho địa hình và lớp phủ, thêm cả hai thứ này sẽ khắc phục vấn đề ...

#mapCanvas img { 
  max-width: none;
}

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

Kiểu thứ hai sẽ sắp xếp các vấn đề khác với hộp địa hình và lớp phủ trong một số trình duyệt.


Đúng ! mọi thứ dường như cố định với câu hỏi này kết hợp với câu trả lời được gắn cờ là "được chấp nhận" ở trên. Cảm ơn.
Mat

hoạt động như một bùa mê trong firefox 17 nhưng không phải trong chrome 23. không biết tại sao nhưng tôi đã tìm thấy giải pháp chỉ cần thêm điều này:$('.map').on('shown',function(){ google.maps.event.trigger(map, 'resize'); });
yosafatade

Bạn là một thiên tài. Cảm ơn rất nhiều. Điều này khiến tôi phát điên :-)
Chịu

20

Cung cấp cho bản đồ vải của bạn một id của map_canvas.

Cam kết bootstrap này bao gồm max-width: nonesửa lỗi cho id map_canvas(nhưng nó sẽ không hoạt động mapCanvas).


Tôi nghĩ rằng chỉ để thay đổi id là cần thiết trong v2.2.2
jacktrades

tôi không thể tìm thấy id như vậy trong tập tin css
Muhaimin

@robd: Chỉ để tò mò, Tại sao nó không hoạt động ngoại trừ map_canvas.
ArunRaj

@ArunRaj vì bản sửa lỗi trong bootstrap được mã hóa cứng thành id #map_canvas (xem cam kết được liên kết). Trong mọi trường hợp, câu trả lời này có lẽ đã lỗi thời vì đã gần 2 tuổi.
cướp

11

Không có câu trả lời nào trong số này làm việc cho tôi, vì vậy tôi đã tìm đến div của mình và nhìn vào những đứa con của nó, tôi thấy một div mới với lớp "gm-style", vì vậy tôi đã đưa nó vào CSS của mình:

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

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

.. và điều đó đã giải quyết vấn đề cho tôi.


+1 đây là câu trả lời duy nhất giúp tôi khắc phục các điều khiển "thu phóng" kỳ lạ. (Bootstrap 2)
philfreo

Làm việc cho tôi quá. Phát hiện tốt :)
jeje

Cảm ơn, làm việc cho tôi quá. Câu trả lời duy nhất giúp tôi khắc phục các điều khiển "thu phóng" kỳ lạ. (với Foundation 5)
Steffi

3

Bạn muốn vượt quá quy tắc độ rộng tối đa trong phần CSS bằng cách sử dụng độ rộng tối đa: none; Đây có vẻ là cách xung quanh vấn đề này


2

Thay đổi #MapCanvas không hoạt động đối với chúng tôi bằng cách sử dụng đá quý gmap4rails, nhưng đã làm khi chúng tôi thay đổi thành

.map_container img {
    max-width: none;
}

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

2

Tôi đang sử dụng gmaps4rails, bản sửa lỗi này đã giúp tôi:

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

1

twitter bootstrap 2.0.4 mới nhất bao gồm sửa lỗi này trực tiếp.

Nếu bạn đang gói nội dung của mình trong một (div class = "container") như trong trang demo của twitter bootstrap, bạn nên thêm một style = "height: 100%"


1

Ngoài ra còn có một vấn đề với việc in bản đồ bằng cách sử dụng In trong bất kỳ trình duyệt nào. Các img { max-width: 100% !important; }sẽ không được cố định bởi đoạn code trên: bạn cần phải thêm một !importanttuyên bố như sau:

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

0

Tôi cũng phải tắt bóng hộp và vì thứ tự bao gồm, tôi đã thêm cờ quan trọng!

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

1
Điều này làm việc cho tôi. Nếu bạn sẽ bỏ phiếu cho ai đó, ít nhất bạn nên nói lý do tại sao.
Redtopia

0

Tất cả các câu trả lời đều là max-widht: none

đối với tôi, max-height: kế thừa đã làm việc .....

Mọi người đang sử dụng #map, #map_canvas, v.v. Hãy nhìn vào div cha của bạn. Nếu nó màu xanh, thì nó sẽ là #blue img {}

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.