2009-12-29 23 views
14

Đối với dự án web di động hiện tại của tôi, tôi sử dụng thẻ meta "viewport" để hướng dẫn trình duyệt di động sử dụng tỷ lệ 1: 1 chiều rộng của thiết bị:meta chiều rộng thiết bị "viewport": Chiều rộng sai nhỏ trên Opera Mobile 9.7 (10 công trình)

<meta name="viewport" content="initial-scale=1.0, width=device-width, height=device-height, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 

Tính năng này hoạt động trên IE, iPhone Safari và thậm chí trên Opera 10 beta, nhưng không có trên Opera 9.7 được cài đặt mặc định trên HTC HD2. HTC HD2 có kích thước thiết bị 480x800, do đó chế độ xem sẽ có chiều rộng 480 ở chế độ dọc. Nhưng xuất hiện Opera di động 9,7 (và có lẽ 9,5 quá) thiết lập một chiều rộng sai, vì vậy sau đó tất cả mọi thứ được phóng to một chút. Tôi đã sử dụng một đoạn mã javascript ngắn để kiểm tra kích thước cửa sổ thực tế:

$ (window) .width() -> trả về 274
window.innerWidth -> trả về 480

Khi tôi hardcode 480 thay vì "thiết bị -width "mọi thứ hoạt động chính xác. Cùng vào đây để cảnh-mode:

$ (window) .width() -> trả về 457
window.innerWidth -> trả về 800

Có workaround cho điều này?

Chúc mừng

+0

tôi có một hd2 htc, nhưng tôi luôn luôn nhận 960 cho chiều rộng! tôi đã thử window.screen.width và tôi nhận được 480, luôn luôn! và chiều cao luôn luôn là 800 không có vấn đề gì, là một lỗi ?! – Ayyash

+0

hôm nay tôi đã thử: document.body.offsetWidth trong khi đặt thẻ meta chế độ xem thành 240, tôi đã nhận được 236! yepeee, nhưng tôi vẫn không nhận được giá trị độ cao chính xác trừ khi trang trống – Ayyash

+0

mọi thứ tôi mới thử hôm nay, trong C# Request.Browser.ScreenPixelsWidth.ToString() trả về 640! và tôi nghĩ tôi có thể sử dụng nó để phân biệt một số màn hình nhưng naaah! – Ayyash

Trả lời

0

Bạn đã thử thẻ HandleFriendly chưa?

trình trên BB và cho thấy bạn đã thiết kế mã cho màn hình nhỏ

+4

Khá chắc chắn bạn có nghĩa là HandheldFriendly. –

0

Có một cái nhìn tại trang web di động của PPK Quirksmode.org. Heaps của thông tin, cộng với bảng tương thích!

+0

PPK là bằng chứng cho thấy điện thoại di động là một cơn đau sử thi để phát triển ngay bây giờ :) –

3

Tôi biết đây là câu hỏi cũ nhưng có thể giúp ai đó. Trong bài viết này, có một phần về hỗ trợ thẻ meta khung nhìn trong Opera Mobile 9.7: http://dev.opera.com/articles/view/opera-mobile-9-7-features-standards/ Thuộc tính người dùng có thể mở rộng, quy mô tối thiểu và tối đa không được hỗ trợ nhưng chiều rộng, chiều cao và quy mô ban đầu. Nếu nó không hoạt động tốt, bạn luôn có thể thử sử dụng truy vấn phương tiện CSS. Có một mô tả và ví dụ trong cùng một bài viết.

9

Tôi trễ một chút về điều này nhưng: thẻ meta chế độ xem phải được xem là pixel CSS, không phải pixel vật lý của màn hình. và tỷ lệ giữa chúng có thể khá khác nhau về mật độ pixel vật lý của thiết bị:

iPhone3: physical 320x480px/CSS 320x480px => ratio = 1, dễ dàng.

iPhone4: vật lý 640x960px/CSS 320x480px => tỷ lệ = 2, đó là những gì của Apple nghĩ đến làm khi họ đã pixel hai lần nhỏ hơn trong iPhone4 để giữ các trang web tối ưu hóa cho 3 ngày làm việc giống hệt nhau trên 4.

HTC Desire HD: vật lý 480x800px/CSS 320x533px => ratio = 1.5 có lẽ là thứ gần với những gì bạn đang gặp phải với HTC HD2.

nếu bạn sử dụng giá trị width = device-width cho chế độ xem, tôi đoán là bạn không nên có chiều rộng cố định trong thiết kế của mình, nhưng sử dụng chiều rộng tốt hơn trong%, ghi nhớ rằng nhiều nhất (gần đây) thiết bị di động tổng chiều rộng CSS của bạn sẽ ở đâu đó khoảng 320px (dọc) hoặc 500px (ngang) ở tỷ lệ 1.0.

Các vấn đề liên quan