Thế nào là viết code theo tiêu chuẩn mobile-first

Rate this post

Trrước đây khi màn hình phổ thông chưa bao gồm mobile devices, chúng ta không có khái niệm mobile-first. Với sự phát triển mạnh mẽ của thời đại, hiện nay khái niệm mobile-first đã được định nghĩa và sử dụng thường xuyên hơn rất nhiều.

Mobile-First là gì?

Mobile-first được coi là các tiêu chuẩn ưu tiên mặc định cho mobile devices (các khung hình nhỏ như thiết bị di động) sau đó mới override các giá trị cho tablet, và sau cùng là desktop. Khái niệm này được đưa ra bởi Luke Wroblewski vào năm 2009.

Mobile-first khác hẳn với Desktop-first, tức các tiêu chuẩn áp dụng cho khung hình từ 1024px trở lên của các thiết bị như desktop, laptop, do vậy cách viết code sẽ hoàn toàn ngược nhau (nhưng không phải sai hay đúng, chỉ là do sự thống nhất code mà chúng ta quy định ra thôi).

Sự khác nhau giữa Mobile-First và Desktop-First

Hãy nhìn vào đoạn code của Mobile-first dưới đây:

.block {
  width: 100%;
}
@media (min-width: 30em) {
  .block {
    width: 50%;
  }
}

Ta sẽ thấy khung hình mobile sẽ có width 100%, sau đó mới đến khung hình lớn hơn (30em ~ 480px trở lên), ta mới set về width 50%. Nếu không có @media, rõ ràng block sẽ có khung width 100% của mobile trên tất cả khung hình, đúng không?

Sự khác nhau của Mobile-first chính là vậy. Như thế, Desktop-First sẽ sử dụng @media (max-width: 30em) thay vì min-width như Mobile-first.

Ưu điểm của Mobile-First

Mobile-first mang lại một cuộc cách mạng nho nhỏ trong việc hình thành mindset mobile-first dành cho các ứng dụng di động, các nền tảng và hệ thống hỗ trợ đa thiết bị.

Nói như vậy là bởi mobile-first cũng tương tự như trào lưu sử dụng wap trước đây, nhưng thay vì độc lập và tách biệt khỏi nền tảng web thì nay nó chạy song song trên tất cả devices. Responsive cũng là lợi điểm dễ nhận thấy của mobile-first, quan sát và dễ dàng theo dõi hơn so với làm Desktop-first.

Môt điểm không thể bỏ qua là Mobile-first giúp bạn quan sát layout và thực hiện code ban đầu rất nhẹ nhàng, bởi khung mobile thường không quá phức tạp, các grid layout và sự thay đổi là không cao.

Bắt đầu Mobile-First như thế nào?

Nếu bạn sử dụng CSS thuần, đoạn code ngay lúc đầu có thể là 1 lựa chọn phù hợp. Tuy vậy, Code Tốt khuyến khích các bạn làm quen với SCSS và sử dụng gulp tool từ NodeJS để compile code.

Code trong SCSS chắc chắn sẽ dễ đọc và hình dung hơn:

.box {
  width: 100%;
  @media (min-width: 30em) {
    width: 50%;
  }
}

Bạn thấy không, @media hoàn toàn có thể sử dụng bên trong class thay vì cần tách ra như CSS thuần.

Chúc bạn nắm được và sử dụng khái niệm mobile-first hiệu quả trong công việc nhé.

Bonus poll về mobile-first

Poll của Smashing Magazine về việc xử lý desktop-first hay mobile-first cho dân dev.

Viết một bình luận


Chuyên gia về Web
Bạn muốn làm việc với dịch vụ website do chúng tôi triển khai?
Gọi tư vấn 0982.90.4343
Chuyên gia về Web
Bài viết liên quan

07/04/2024

PHP: Format date dd/mm/yyyy và so sánh với Date hiện tại
Một vấn đề hay gặp trong quá trình xử lý PHP datetime là tình huống format date từ định dạng...

02/01/2024

Fix lỗi npm không thể cài các package devDependencies
Khi cài đặt dự án,  có lúc bạn sẽ cài mãi cũng không đủ các package npm, đặc biệt là...
Gọi file PHP trong WordPress

19/09/2023

Cài đặt và sử dụng WP-CLI trên môi trường Linux
Trên một số môi trường Hosting có thể cung cấp SSH hoặc Terminal access, song không có sẵn WP-CLI để...
Import database MySQL lớn trên môi trường Docker

06/08/2023

Import database MySQL lớn trên môi trường Docker
Mình sử dụng EasyPanel để quản lý các Docker và build môi trường app. Nay gặp tình huống phải import...