Thiết kế Web đáp ứng so với đánh hơi tác nhân người dùng


13

CSS3 mediaTính năng truy vấn đã dẫn đến nhiều khả năng thú vị về mặt phát triển trang web điều chỉnh theo nhiều kích thước màn hình và thiết bị khác nhau.

Tuy nhiên, trong thực tế, tôi bắt đầu hiểu rằng CSS3 media tính năng truy vấn và toàn bộ phong trào "Thiết kế web đáp ứng" có thể không tuân theo lời hứa của nó.

Vấn đề tôi thấy là vào cuối ngày, các nhà phát triển web quan tâm chủ yếu đến việc người dùng của họ có đang xem nội dung qua Máy tính để bàn, Máy tính bảng hoặc Thiết bị di động hay không. Nhưng CSS3 chỉ cung cấp một phương tiện để phát hiện độ phân giải màn hình . Về lý thuyết, phát hiện độ phân giải màn hình có vẻ như là một cách tuyệt vời để điều chỉnh cho các thiết bị khác nhau. Nhưng trong thực tế ...

Giả sử chúng ta có một chức năng Javascript đơn giản chỉ xuất ra chiều rộng màn hình:

function foo()
{
   alert(screen.width);
}

Trên Blackberry Touch của tôi, kết quả này xuất ra:

768

Trên Samsung Galaxy của tôi, kết quả này:

800

Vì vậy, ... tại thời điểm này, độ phân giải của điện thoại thông minh chính thống đang trở nên khá gần với độ phân giải ở cấp độ Máy tính để bàn. Khả năng phát hiện xem người dùng có đang xem trang web của bạn thông qua điện thoại thông minh, máy tính bảng hoặc máy tính để bàn hay không, dường như ngày càng khó khăn hơn nếu tất cả những gì bạn đang làm là độ phân giải màn hình.

Điều này khiến tôi đặt câu hỏi về toàn bộ sự khôn ngoan đằng sau toàn bộ phong trào "Thiết kế web đáp ứng" CSS3 dựa trên các truy vấn phương tiện. Có vẻ như mediatính năng truy vấn phù hợp hơn với việc thích ứng với cửa sổ trình duyệt thay đổi kích thước trên màn hình Desktop, thay vì các thiết bị di động khác nhau.

Một kỹ thuật khả thi khác để phát hiện thiết bị di động hoặc máy tính bảng là sử dụng tính năng phát hiện tính năng, bằng cách kiểm tra xem ontouchstart sự kiện có được hỗ trợ hay không. Nhưng ngay cả điều này đang trở nên không đáng tin cậy khi nhiều màn hình Desktop bắt đầu hỗ trợ cảm ứng.

Câu hỏi: Vì vậy, ... là một nhà phát triển web, nếu tôi không thể dựa vào RWD hoặc phát hiện tính năng, thì việc đánh hơi tác nhân người dùng (có phải là không đáng tin cậy như mọi khi) thực sự là lựa chọn tốt nhất để phát hiện thiết bị di động?


Nếu mục tiêu của Thiết kế Web đáp ứng là (như Wikipedia tuyên bố ) "dễ đọc và điều hướng với tối thiểu thay đổi kích thước, xoay và cuộn", thì tại sao bạn quan tâm liệu đó là máy tính để bàn hay thiết bị di động? Vấn đề là độ phân giải màn hình và kích thước màn hình của thiết bị, chứ không phải loại thiết bị. Không?
ruakh

Tôi đoán điều tôi đang nói là sự kết nối giữa "độ phân giải màn hình" và kích thước màn hình thực tế (ví dụ: cm / inch chiều rộng màn hình) đang ngày càng trở nên thoáng qua.
Kênh72

Tôi nghĩ bạn nên làm gì đó với truy vấn phương tiện chiều rộng thiết bị vì độ rộng / độ phân giải ngày càng không chính xác, đặc biệt là với mật độ pixel của các màn hình khác nhau, ví dụ như các thiết bị "Retina" của Apple. Vì vậy, nếu chiều rộng thiết bị nằm trong chiều rộng chung của thiết bị di động thì bạn hiển thị bố cục khác. Đối với người dùng máy tính bảng / máy tính để bàn, tôi chỉ hiển thị cùng bố cục, tức là rộng 1024px.
zuallauz

@zuallauz, không phải là hỗ trợ cho device-widthkhá xấu?
Kênh72

Tại sao không đi bằng đơn vị em? Bằng cách đó, nội dung sẽ thay đổi dựa trên không gian văn bản có sẵn ...

Câu trả lời:


12

Đừng lo lắng quá nhiều về các thiết bị cụ thể.

Khả năng phát hiện xem người dùng có đang xem trang web của bạn thông qua điện thoại thông minh, máy tính bảng hoặc máy tính để bàn hay không, dường như ngày càng khó khăn hơn nếu tất cả những gì bạn đang làm là độ phân giải màn hình

Đó ngày càng trở nên khó phát hiện qua độ phân giải màn hình, và nó sẽ chỉ nhận được khó khăn hơn như các thiết bị nhiều hơn vào thị trường, nhưng mục đích của các truy vấn phương tiện truyền thông không phải là để phát hiện thiết bị types.What truy vấn phương tiện truyền thông tốt tại đang thực hiện tinh chỉnh để thiết kế của bạn khi nó không còn dễ chịu để sử dụng ở kích thước hiện tại. Nếu trang web bắt đầu sụp đổ ở độ rộng 550px, thì không có vấn đề gì nếu có một thiết bị có các kích thước đó hay không: bạn đặt điểm dừng ở đó.

Nó cùng một thỏa thuận với phát hiện tính năng. Nếu thiết bị hỗ trợ cảm ứng, vậy thì có vấn đề gì nếu đó là thiết bị di động hoặc một số màn hình cỡ tường trong tương lai? Dù bằng cách nào thì các cải tiến cảm ứng có thể sẽ hữu ích.

Tác nhân đánh hơi tác nhân - như bạn đã nêu - là hoàn toàn không đáng tin cậy. Tôi có thể thay đổi chuỗi Tác nhân người dùng của mình thành dấu ngoặc kép của Shakespeare nếu tôi thực sự muốn. Trang web của bạn sẽ quyết định gì về trình duyệt của tôi sau đó?

Tác nhân người dùng cũng đòi hỏi rất nhiều công việc để xử lý tất cả các khả năng. Bạn có một cái cho Firefox trên Android không? Chrome trên iOS? Cá heo trên Froyo? Trình duyệt WiiU? Trình duyệt cực kỳ hạn chế trên điện thoại LG cũ của tôi? Linh miêu? IE 13? Liên kết? IceWeasel? Trình duyệt của Blackberry Playbook? Làm thế nào để bạn biết sự khác biệt giữa Opera chạy trên máy tính bảng và opera chạy trên điện thoại?

Danh sách này chỉ có thể phát triển khi thời gian trôi qua.


Chà, bố cục 1 cột thường cho vay tốt cho điện thoại thông minh. Đối với máy tính bảng, bạn có thể thoát khỏi bố cục 2 cột hoặc thậm chí 3 cột và đối với Máy tính để bàn thường có 3 cột hoạt động tốt. Bất kể, số lượng cột lý tưởng bạn hiển thị thường là một chức năng của khả năng sinh học của mắt người , thay vì độ phân giải màn hình. Quan điểm của tôi là sẽ rất tuyệt nếu có mối tương quan chặt chẽ hơn giữa độ phân giải màn hình và khả năng một người bình thường sẽ có thể dễ dàng quét trang web của bạn một cách trực quan. Ít nhất, CSS3 dường như giả định một mối tương quan như vậy.
Kênh72

1
Thật sự phải có. Các pixel CSS được cho là được xác định bằng cách sử dụng các góc và khoảng cách chứ không phải các pixel vật lý. Nhiều nhà sản xuất đang bỏ qua điều này trong cài đặt mặc định của họ mặc dù.
Mike Gossmann

@ Channel72 Bố cục 1 cột cho chính nó phù hợp với mọi chiều rộng màn hình hẹp . Việc chiều rộng màn hình có hẹp không quan trọng vì đó là trình duyệt trên điện thoại thông minh hay trình duyệt máy tính để bàn trong cửa sổ có kích thước lại trên màn hình khổng lồ. Thiết kế web đáp ứng cố gắng đáp ứng tất cả các kịch bản phù hợp, bất kể tác nhân người dùng.
Eric King

Điều gì sẽ xảy ra nếu bạn sẽ phục vụ chế độ xem hoàn toàn khác cho người dùng di động. Điều gì về việc ngăn chặn việc sử dụng điện thoại di động tải xuống tất cả các dữ liệu không liên quan cần thiết cho người dùng máy tính để bàn. Tác nhân người dùng là con đường để đi ...
John

1

Đại lý người dùng nói dối, quá. Nếu bạn Google xung quanh, bạn sẽ tìm thấy danh sách các tác nhân người dùng so với thực tế. Vì vậy, đây là một vấn đề. Một số biện pháp để xem xét cài đặt dpi để xác định đó là loại thiết bị nào.


3
Nếu ai đó có nhu cầu cung cấp dữ liệu sai trong dữ liệu tác nhân người dùng, anh ta sẽ nhận được phiên bản mặc định của trang web ...
John
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.