công ty thiết kế website tốt nhất

Nguyên tắc thiết kế web hiện đại 06/05/2020

Nguyên tắc thiết kế web hiện đại

Một điều làm đau đầu các Web Designer nhất và cũng là vấn đề cố hữu nhất của lĩnh vực thiết kế web là việc tương thích giữa các trình duyệt. Trong bài này, chúng ta sẽ không bàn về làm cách nào để trang web tương thích với mọi trình duyệt mà tôi chỉ tập trung nói về hai nguyên tắc cơ bản mà mỗi người làm web nào cũng nên để tâm tới.

Hai thuật ngữ này tiếng anh là Progressive Enhancement (Nâng cao lũy tiến) và Grateful Degradation (Giáng cấp dễ chịu >”<). với="" những="" người="" thiết="" kế="" web="" kinh="" nghiệm,="" thì="" đây="" là="" hai="" khái="" niệm="" luôn="" đi="" chung="" với="" nhau="" trong="" quá="" trình="" thiết="" kế="" một="" trang="" web.="" đơn="" giản="" thì="" cặp="" khái="" niệm="" này="" được="" tạo="" ra="" để="" khi="" thiết="" kế="" trang="" web="" phải="" làm="" sao="" cho="" trang="" web="" có="" thể="" truy="" cập="" được="" với="" mọi="" đối="" tượng="" người="" dùng.="" nhưng="" đối="" với="" những="" trình="" duyệt="" hiện="" đại="" hơn="" thì="" có="" thể="" áp="" dụng="" nhiều="" hơn="" về="" mặt="" thẩm="" mỹ="" cũng="" như="" tăng="" tính="" khả="" dụng="" của="">

Grateful Degradation

Thuật ngữ Grateful Degradation được áp dụng trong nhiều lĩnh vực đặc biệt là trong cơ học và điện tử học. Nguyên tắc của nó là khi làm ra một sản phẩm thì làm cho những thứ tốt nhất và phổ thông nhất, hay nói cách khác là tập trung phát triển cho số đông trước khi mới quay lại hỗ trợ cho phần còn lại. Còn trong lĩnh vực thiết kế web thì bạn có thể làm sao cho trang web của mình hiển thị tốt nhất trên những trình duyệt hiện đại và không có lỗi. Bạn cũng có thể áp dụng những khái niệm mới về CSS3, HTML5 để cung cấp cho những trình duyệt hiện đại như Chrome và Safari.

Progressive enhancement


Sau khi đã tạo ra những hiệu ứng mong muốn, bạn sẽ quay lại những trình duyệt cũ hơn và giáng cấp nó từ từ. Ví dụ khi bạn áp dụng hiệu ứng bo tròn góc cho trình duyệt hiện đại bằng CSS3. Sau đó quay lại dùng hình ảnh để tạo ra hiệu ứng tương tự với những trình duyệt thấp hơn. Như thế những ai sử dụng trình duyệt hiện đại sẽ được hưởng lợi nhờ khả năng mới của trình duyệt, còn với những ai không có thì vẫn có thể sử dụng được.

Progressive Enhancement

Thuật ngữ này được giới thiệu muộn hơn nhiều, khoảng năm 2003. Nó ngược lại với thuật ngữ trên là chúng ta xây dựng trang web cho những trình duyệt kém hỗ trợ nhất sau đó từ từ bổ sung những tính năng mới cho những trình duyệt hiện đại hơn.

Ví dụ cho khái niệm này là khi bạn làm một hệ thống menu của trang web sử dụng JavaScript để tạo hiệu ứng cho đẹp mắt hơn. Nhưng trước khi thêm JavaScritp, bạn nên tạo một hệ thống chỉ có mã HTML để cho những người không bật JavaScript hoặc cả CSS vẫn có thể xem nội dung trang web của bạn. Sau đó bạn mới sử dụng CSS để làm cho menu có thể Dropdown hoặc Fly Out. Để những ai không có JavaScript vẫn xem được. Và cuối cùng mới là sử dụng JavaScript để cho menu thêm bắt mắt cho nhóm người đọc cuối cùng.

Có cần phải hoàn hảo đến từng chi tiết

Đây là câu hỏi mà câu trả lời còn phải phụ thuộc vào nhiều yếu tố như thiết kế, nhóm người đọc, độ phức tạp của code v.v… nhưng tựu chung người ta chỉ yêu cầu bạn làm sao cho trang web ở mức cơ bản nhất như là không có hình ảnh, không có CSS và cả JavaScript vẫn có thể sử dụng được tuy không đẹp bằng phiên bản đầy đủ.

Theo kinh nghiệm riêng của tôi thì đối với những trình duyệt quá cũ như IE 6, 7 thì miễn sao nội dung trên trang web của bạn vẫn có thể đọc được là được. Chính vì thề Google nó mới có đoạn code cài sẵn, nếu ai sử dụng IE 6 mà truy cập vào trang của bạn. Nó sẽ chỉ đưa ra phiên bản cơ bản nhất là chỉ có chữ mà không có hiệu ứng gì cả.

Tất nhiên vì yêu cầu công việc hoặc đặc thù của một trang web mà người ta vẫn muốn trang web phải đẹp dù với những trình duyệt cũ. Nhưng bạn không phải chính xác đến từng pixel. Bạn khó có thể làm một trang web nhìn giống nhau đến từng Pixel trên các trình duyệt khác nhau được. Nói ví dụ như padding bên IE 6 hụt mất 2 px so với Firefox, hoặc menu lại có gạch chân ở cuối cùng danh sách với IE 6 v.v. những khác biệt nhỏ như thế không ảnh hưởng đến toàn bộ giao diện.

Progressive enhancement


Đôi khi bạn cũng phải tự hỏi có cần thiết phải sử dụng cả một “quân thể code” chỉ để sửa một lỗi là cái border của list item không? Những thứ không trực tiếp ảnh hưởng đến tính khả dụng của trang web đối với những trình duyệt cũ thì bạn không nên quá khắt khe làm gì.

Kết luận

Hai khái niệm trên là những nguyên lý rất hay mà những người làm web có kinh nghiệm hay làm theo. Áp dụng nó như thế nào và ở mức độ nào là tùy thuộc vào bạn và tùy thuộc vào Project mà bạn đang làm. Nhưng đừng tập trung quá vào những trình duyệt hiện đại mà bỏ đi những trình duyệt kém hơn. Hoặc đừng quá quan tâm tại sao trang web của mình lại lệch sang phải 3 px ở IE 6 so với Firefox.