2013-05-14 5 views
24

Trong ứng dụng của tôi, tôi đã làm div của bản đồ nhưlàm thế nào để làm cho tờ rơi chiều cao bản đồ biến

<div id="map" style="height: 610px; width:100%"></div> 

nhưng để làm cho bản đồ của tôi đáp ứng Tôi muốn làm cho chiều cao cũng 100%, nếu tôi làm height: 100% sau đó nó không phải là đang làm việc.

Làm cách nào để làm cho chiều cao cũng biến đổi như chiều rộng để bản đồ có thể được nhìn thấy chính xác trên mọi thiết bị.

Demo: http://jsfiddle.net/CcYp6/

Nếu bạn thay đổi chiều cao & chiều rộng của bản đồ sau đó bạn sẽ không nhận được bản đồ.

+0

Cung cấp JSfiddle mã của bạn cũng như ảnh chụp màn hình về cách bạn muốn. – Nitesh

+0

@NathanLee vui lòng xem demo ở trên –

Trả lời

21

Bạn cần phải thiết lập các yếu tố phụ huynh để height: 100%; đầu tiên

html, body { 
    height: 100%; 
} 

Demo

Demo (Điều này sẽ không làm việc như không có chiều cao cha mẹ được định nghĩa)

Giải thích: Tại sao bạn cần Để làm việc đó? Vì vậy, khi bạn chỉ định chiều cao của một phần tử trong % thì câu hỏi thứ nhất phát sinh là: 100% của cái gì? Theo mặc định, div có chiều cao là 0px, vì vậy 100% cho div đơn giản sẽ không hoạt động, nhưng việc đặt các phần tử gốc height thành 100%; sẽ hoạt động.

+0

bạn có thể giải thích chút ít không? – underscore

+0

Nó có thể hoạt động trong điều kiện bình thường. Nhưng như div của tôi chứa bản đồ nó muốn làm việc. –

+0

@vaibhavshah Bạn đang nói về bản đồ nào? –

21

Bạn phải đặt kích thước div bằng JavaScript.

$("#map").height($(window).height()).width($(window).width()); 
map.invalidateSize(); 

Bạn có thể tìm thấy ví dụ hoàn chỉnh here.

+0

cách thêm một thuộc tính nữa làm đệm từ trái sang $ ("# map") .height ($ (cửa sổ) .height()). chiều rộng ($ (cửa sổ) .width()); –

+0

@vaibhav shah, bạn có thể chấp nhận câu trả lời này. Cảm ơn. – northtree

5

Sử dụng chiều cao = "100vh" hoạt động trong trình duyệt mới hơn. nhưng nó ổn.