2011-07-21 28 views
7

Tôi đang xem xét các phương pháp tạo kiểu ứng dụng Rails để sử dụng trên thiết bị di động.Chuyển đổi kiểu di động trong Rails 3, phương thức trợ giúp so với truy vấn phương tiện

Ý tưởng này phổ biến, sử dụng một bộ kiểu cho trình duyệt trên thiết bị di động và một bộ khác cho kiểu truyền thống.

Từ những gì tôi có thể nói có hai cách cơ bản để làm điều này trong Rails:

Sử dụng một phương pháp helper để phát hiện tác nhân người dùng và sau đó phôi switch.

application_controller.rb

private 
def mobile? 
    request.user_agent =~ /Mobile|webOS/ 
end 

helper_method :mobile? 

application.html.erb

<% unless mobile? %> 
<%= stylesheet_link_tag "core" %> 
<%else%> 
    <%= stylesheet_link_tag "mobile" %> 
    <meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/> 
<% end%> 

Hoặc sử dụng phương tiện truyền thông truy vấn trong style sheets

body { 
// basic styles 
} 

@media all and (max-width: 600px) { 
body { 
// extra styles for mobile 
} 
} 

@media all and (min-width: 600px) { 
body { 
    // extra styles for desktop 
} 
} 

Câu hỏi của tôi là không thích thương mại là gì? Là một phương pháp thường tốt hơn hoặc có trường hợp sử dụng tốt cho cả hai.

Cảm ơn trước

Trả lời

9

Điều đó tùy thuộc.

Trên personal website Tôi sử dụng truy vấn phương tiện để thay đổi kiểu cho trình duyệt di động. Điều này hoạt động khá tốt trong trường hợp này bởi vì trang có rất ít hình ảnh và phần lớn các thay đổi về phong cách chỉ để làm cho trang web theo chiều dọc và thu nhỏ kích thước phông chữ.

Thật không may, tuy nhiên, not every mobile phone understands truy vấn phương tiện. Hơn nữa, tùy thuộc vào việc bạn đang làm gì với truy vấn phương tiện, bạn có thể là sacrificing performance by using media queries. Ví dụ: thu nhỏ hiển thị hình ảnh lớn hoặc ẩn nội dung ảnh hưởng tiêu cực đến hiệu suất trong điện thoại di động bị hạn chế mạng.

Đối với các trang web phức tạp, bạn cũng có thể muốn hiển thị các trang web hoàn toàn khác nhau để tùy chỉnh trải nghiệm di động. Sử dụng phương pháp "trợ giúp" cho phép bạn tùy chỉnh nhiều hơn chỉ là biểu định kiểu. Điều này cũng cho phép người dùng di động truy cập trang web "bình thường" trên điện thoại của họ bằng cách chuyển một tham số bổ sung được tính đến trong phương thức mobile? của bạn.

Tóm lại: Nếu đơn giản, truy vấn phương tiện là một cách dễ dàng để tùy chỉnh hiển thị, tuy nhiên, trải nghiệm di động có thể sẽ khác biệt về mặt tổng thể hơn chỉ là chỉnh sửa màn hình nhỏ. Việc cố gắng sử dụng CSS để tùy chỉnh toàn bộ trải nghiệm không phải là một ý tưởng hay.

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