Để 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-width | 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-width sẽ bị ảnh hưởng source code. |
| min-width | 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-width sẽ bị ảnh hưởng source code. |
Ví dụ đơn giản
div {
background-color: blue;
}
@media only screen and (max-width: 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ơn1024pxsẽ cóbackground-color: red. only screen: chỉ dành cho trang hiển thị (không dành cho bản in (print)).max-width: 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ơn1024pxđều sẽ bị ảnh hưởng code bên trong, cụ thể làdivsẽ 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;
width: 200px;
}
Hiển thị trình duyệt - khi chưa sử dụng
@media:
Học Web Chuẩn
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;
width: 200px;
}
@media only screen and (max-width: 1024px) {
div {
background-color: red;
}
}
@media only screen and (max-width: 768px) {
div {
background-color: blue;
}
}
@media only screen and (max-width: 640px) {
div {
background-color: yellow;
}
}
@media only screen and (max-width: 480px) {
div {
background-color: pink;
}
}
0 nhận xét:
Chào bạn nếu có bất cứ thắc mắc nào hãy để lại ý kiến. Nhận xét của bạn đều rất quan trọng, tôi rất vui nếu bạn để lại nhận xét của mình