Bài 53: Quy tắc @media trong CSS với thiết kế responsive

Ngày đăng: 1/5/2023 9:39:16 AM

Hãy dùng thẻ meta viewport

Khung nhìn - viewport của browser là phần diện tích của sổ tại đó nội dung trang web được hiện thị. Rất nhiều trường hợp khung nhìn trình duyệt và kích thước nội dung của trang là không giống nhau, khi đó sẽ xuất hiện thanh cuộn để bạn cuộn nội dung.

Trên các trang của bạn nên có thẻ meta với nội dung sau:

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

Thiết lập width=device-width cho trình duyệt biết (đặc biệt là trình duyệt trên điện thoại) khung nhìn hiện thị trang bằng kích thước màn hình (không xuất hiện thanh cuộn đứng). initial-scale=1 tỉ lệ thu phóng (đơn vị pixel) của trang khi mới tải hoặc khi xoay màn hình, với giá trị bàng 1 nghĩa là thu phóng 100% - màn hình xoay ngang dọc đều cùng tỉ lệ thu phóng.

Quy tắc @media

Quy tắc @media cho phép bạn viết một tập hợp các quy tắc CSS nó chỉ có hiệu lực tùy thuộc vào thông số cụ thể của cửa sổ, màn hình ...

Cú pháp:

 @media media-types [and media-query-conditions]? {
     /* các đoạn mã CSS */
 }
 

media-types

Tham số media-types là loại màn hình, nó có thể nhận nhiều giá trị cách nhau bởi dấu phảy ,. Các giá trị như:

  • all : tất cả các loại thiết bị hiện thị
  • print : khi ở chế độ xem trước in (print preview)
  • screen : màn hình màu máy tính

Ví dụ:

 @media print {
     .footer {
         display: none;
     }
 }
 

media query

Trong quy tắc @media còn có thể chứa các truy vấn media, là các thông số cụ thể hơn về khung nhìn, màn hình ... các kiểu media (media type) hay các truy vấn media (media query) có thể kết hợp với nhau bởi các toán tử ký hiệu: và and, hoặc or, phủ định not

Dưới đây là một một số loại query media

Chiều rộng width của khung nhìn với vấn widthmin-width và max-width

  • min-width: leng; chiều rộng tối thiểu của cửa sổ
  • max-width: leng; chiều rộng tối đa
 @media (min-width: 1200px) {
   /* các CSS hiệu lực khi màn hình từ 1200px trở đi*/
 }
 
 @mdia print and (min-width: 25cm)
 {
     /* các CSS hiệu lực khi in ấn, và chiều rộng thiết bị từ 25cm trở lên */
 }
 
 @media screen and (min-width: 400px) and (max-width: 700px)
 {
     /* Các CSS khi màn hình từ 400px đến 700px */
 }
 

Chiều cao khung nhìn với vấn heightmin-height và max-height các dùng tương tự như chiều rộng.

Chiều rộng của thiết bị với các truy vấn device-widthmin-device-width và max-device-width

 @media screen and (device-width: 800px)
 {
     /* các CSS hiệu lực khi là màn hình, màn có chiều rộng 800px */
 }
 

Chiều cao của thiết bị với các truy vấn device-heightmin-device-height và max-device-height

Hướng màn hình với truy vấn orientation

  • orientation:portrait : màn hình xoay đứng
  • orientation:landscape : màn hình xoay ngang
 @media all and (orientation:landscape)
 {
     /* Các CSS khi màn hình xoay ngang */
 }

Nguồn tin: Xuanthulab