Responsive - media queries là gì?
Responsive - media queries là gì? Để xử lý thay đổi giao diện giữa các dạng màn hình khác nhau (chiều rộng màn hình khác nhau), chúng ta sẽ sử dụng truy vấn @media. Cấu trúc Truy vấn @media được viết trong file CSS, với cấu trúc như sau: @media only|not Media-type and ( ...
Responsive - media queries là gì?
Để xử lý thay đổi giao diện giữa các dạng màn hình khác nhau (chiều rộng màn hình khác nhau), chúng ta sẽ sử dụng truy vấn @media.
Cấu trúc
Truy vấn @media được viết trong file CSS, với cấu trúc như sau:
@media only|not Media-type and (Media-future and|or|not Media-future) { tag { property: value; } }
Media-type
Giá trị | Mô tả |
---|---|
screen | Dành cho trang hiển thị (không dành cho bản in). |
Dành cho bản in (không dành cho trang hiển thị). | |
all | Mặc định, dành cho trang hiển thị và cả bảng in. |
speech | Dành cho phiên bản hỗ trợ đọc thành tiếng. |
Media-future
Có nhiều giá trị khác nhau, nhưng bài học này sẽ chỉ giới thiệu một số Media-future thường dùng:
Giá trị | Mô tả |
---|---|
max-awidth | Chiều rộng lớn nhất màn hình của thiết bị, tức là những thiết bị có màn hình nhỏ hơn max-awidth sẽ bị ảnh hưởng source code. |
min-awidth | Chiều rộng nhỏ nhất màn hình của thiết bị, tức là những thiết bị có màn hình lớn hơn min-awidth sẽ bị ảnh hưởng source code. |
Ví dụ đơn giản
div { background-color: blue; } @media only screen and (max-awidth: 1024px) { div { background-color: red; } }
Nội dung code trên như sau:
- Tất cả các thiết bị sẽ có background-color: blue, riêng các thiết bị có màn hình nhỏ hơn 1024px sẽ có background-color: red.
- only screen: chỉ dành cho trang hiển thị (không dành cho bản in (print)).
- max-awidth: chỉ tác dụng cho chiều rộng màn hình lớn nhất là 1024px, tức là những màn hình nào nhỏ hơn 1024px đều sẽ bị ảnh hưởng code bên trong, cụ thể là div sẽ có background-color: red.
Ví dụ thêm
Chúng ta sẽ thử thay đổi background-color khác nhau tương ứng với các màn hình khác nhau, ta viết như sau:
HTML viết:
<div>Học Web Chuẩn</div>
CSS viết - khi chưa sử dụng @media:
div { background-color: #92dfc8; height: 150px; line-height: 150px; text-align: center; awidth: 200px; }
Hiển thị trình duyệt - khi chưa sử dụng @media:
Bây giờ ta sẽ thử điều chỉnh sao cho khi thay đổi chiều rộng màn hình thì background-color của <div> sẽ thay đổi.
CSS viết - sử dụng @media để chỉnh hiện thị theo chiều rộng màn hình:
div { background-color: #333333; height: 150px; line-height: 150px; text-align: center; awidth: 200px; } @media only screen and (max-awidth: 1024px) { div { background-color: red; } } @media only screen and (max-awidth: 768px) { div { background-color: blue; } } @media only screen and (max-awidth: 640px) { div { background-color: yellow; } } @media only screen and (max-awidth: 480px) { div { background-color: pink; } }
Click ví dụ @media để xem kết quả.
Responsive break point
Responsive image