Trang Simple Bootstrap không phản hồi trên iPhone


84

Tôi đã tải xuống ví dụ về Twitter Bootstrap và tạo một dự án đường ray đơn giản với nó. Tôi đã sao chép css khi cần thiết và nó hiển thị tốt. Tôi cũng đã sao chép js và mọi thứ hoạt động tốt trên máy tính để bàn của tôi: nó sắp xếp lại trang khi tôi thay đổi kích thước trình duyệt của mình. Khi sử dụng một số "công cụ kiểm tra thiết kế đáp ứng" với các kích thước khác nhau, nó hoạt động rất tốt.

Vấn đề tôi gặp phải là trên iPhone của mình: nó hiển thị giống như trên máy tính để bàn của tôi.

Khi tôi thử trang Ví dụ về Bootstrap Hero (là trang mà tôi đã bắt đầu), nó hoạt động rất tốt trên iPhone của tôi.

Điều gì có thể xảy ra? Tôi hầu như không liên quan đến bất kỳ CSS nào, tôi chỉ thêm một phần đệm trên footer.

FYI, CSS tôi đã thay đổi là tôi đang liên kết ứng dụng của mình application.cssvới nội dung sau:

/* Application stylesheet */

@import url(bootstrap.css);
@import url(bootstrap-responsive.css);

/* Body */
body {
    padding-top: 60px;
    padding-bottom: 40px;   
}   

/* Footer */
footer {
    padding: 20px 0;
}

Bạn có thể đăng một trang thử nghiệm hoặc một số mã?
Andres Ilich

Nó là đáp ứng cho tôi. Tại sao bạn nghĩ rằng nó không đáp ứng?
Jesse Wolgamott

@RaySF Tôi không thể thấy nguyên nhân tại sao nó không hoạt động, mặc dù tôi có một số e ngại về @importquy tắc bạn đang sử dụng nhưng đó là vấn đề cá nhân. Bạn có thể gửi một trường hợp thử nghiệm?
Andres Ilich

@JesseWolgamott nó không phản hồi trên iphone của tôi, khi tôi mở hai trang được đề cập ở trên, các ví dụ chính thức hoạt động tốt (ví dụ: menu không được hiển thị giống nhau) nhưng trang của tôi được hiển thị giống như trên máy tính để bàn.
RaySF

1
@RaySF Do tính chất công việc của tôi, tôi đã phải nghiên cứu các cách để tăng khả năng tương thích và nâng cao hiệu suất của các bảng định kiểu rất lớn được xếp chồng lên nhau bằng @importphương pháp ký hiệu. Trong quá trình thực hiện, tôi đã tìm thấy nhiều vấn đề do kỹ thuật đó và nhận thấy rằng có một lần truy cập hiệu suất biiig (và cũng có rất nhiều lỗi không thể giải thích được) sau đó đã được sửa bằng cách nối các bảng định kiểu bằng cách sử dụng <link>thẻ html . Những nghi ngờ sau đó đã được hỗ trợ bởi những câu hỏi như thế này tại SO.
Andres Ilich

Câu trả lời:


184

Đảm bảo bạn thêm:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

cho bạn <head> .

Tôi đã gặp sự cố tương tự và tôi nhầm tưởng đó chỉ là vấn đề về chiều rộng khung nhìn.

Cập nhật : xem câu trả lời @NicolasBADIA để có phiên bản hoàn chỉnh hơn.


8
và điều này, để cả chế độ xem dọc và ngang đều hoạt động: <meta name = "viewport" content = "width = device-width; initial-scale = 1.0; Maximum-scale = 1.0; user-scalable = 0;" />
Virtualeyes

@virtualeyes, cảm ơn vì mẹo! bất kỳ ý tưởng làm thế nào để cho phép người dùng mở rộng quy mô và xem lanscape hoạt động bình thường?
Andrei

Không, tôi sử dụng JQuery mobile, không phải là người tin tưởng nhiều vào thiết kế đáp ứng. Hãy để thiết bị di động là điện thoại di động và máy tính bảng trở lên, máy tính để bàn. Bất cứ điều gì ở giữa, không quan tâm ;-)
virtualeyes

111

Mã do frntk đề xuất không hoạt động khi bạn xoay thiết bị ở chế độ xem ngang và giải pháp được đưa ra bởi các kỹ thuật viên không chính xác vì nó sử dụng dấu chấm phẩy thay vì dấu phẩy. Đây là mã chính xác:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />

Nguồn: https://developer.mozilla.org/en/Mobile/Viewport_meta_tag


4
Các ví dụ trong trang web chính thức của Twitter Bootstrap nên được cập nhật để sử dụng điều này.
wenbert

1
Thông báo tuyệt vời, cảm ơn! Gặp sự cố tương tự với chuyển màn hình, giờ hoạt động như một sự quyến rũ.
Mark Vital

8
Đây phải là câu trả lời được chấp nhận!
Sheharyar

6

Được, một trường hợp cạnh rất nhỏ, nhưng đáng nói.

Nếu bạn đang sử dụng chuyển tiếp miền qua Nhà cung cấp DNS, trang web của bạn có thể bị bao bọc trong iframe. Ví dụ: GoDaddy sử dụng kỹ thuật này nếu bạn đang che miền của mình và chuyển tiếp.


2
Tôi đã dành hàng giờ để cố gắng giải quyết vấn đề này và cuối cùng tôi đã xem được nhận xét này. Cảm ơn bạn!
Ed Shee

Nhận xét này sẽ làm cho một nhóm người nhỏ rất hạnh phúc.
Nicolas Rojo

Tôi không thấy iframe được bao bọc xung quanh, nhưng gặp vấn đề với các thẻ meta phù hợp, họ có thể ẩn iframe bằng cách nào không?
helle

3

Tôi đã bị mắc kẹt về vấn đề này trong vài giờ.

Đừng quên đặt nội dung bên trong <div class="container-fluid">...</div>


Các container-fluidmẹo đã làm cho tôi!
Paula
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.