Thiết Kế Trang Web Phản Hồi - Truy vấn truyền thông
- Trang trước Xem lưới RWD
- Trang tiếp theo Ảnh RWD
Truy vấn truyền thông là gì?
Truy vấn truyền thông là một kỹ thuật CSS được giới thiệu trong CSS3.
Nó chỉ được sử dụng khi đáp ứng các điều kiện cụ thể. @media
Quy tắc để tham chiếu khối thuộc tính CSS.
Mẫu
Nếu cửa sổ trình duyệt là 600px hoặc nhỏ hơn, thì màu nền sẽ là màu xanh nhạt:
@media only screen and (max-width: 600px) { body { background-color: lightblue; } }
Thêm điểm ngắt
Trong phần sớm hơn của hướng dẫn này, chúng tôi đã tạo một trang web chứa các dòng và cột, nhưng trang web phản hồi này trông không tốt trên màn hình nhỏ.
Truy vấn truyền thông có thể giúp bạn. Chúng ta có thể thêm một điểm ngắt mà ở đó một số phần của thiết kế sẽ có khác biệt ở mỗi bên của điểm ngắt.

Máy tính để bàn

Điện thoại
Thêm điểm ngắt tại 768px bằng truy vấn truyền thông:
Mẫu
Khi màn hình (cửa sổ trình duyệt) nhỏ hơn 768px, độ rộng của mỗi cột nên là 100%:
/* Đối với thiết bị bàn: */ .col-1 {width: 8.33%;} .col-2 {width: 16.66%;} .col-3 {width: 25%;} .col-4 {width: 33.33%;} .col-5 {width: 41.66%;} .col-6 {width: 50%;} .col-7 {width: 58.33%;} .col-8 {width: 66.66%;} .col-9 {width: 75%;} .col-10 {width: 83.33%;} .col-11 {width: 91.66%;} .col-12 {width: 100%;} @media only screen and (max-width: 768px) { /* Đối với điện thoại: */ [class*="col-"] { width: 100%; } }
Thường xuyên ưu tiên thiết kế di động
Ưu tiên di động (Mobile First) có nghĩa là trước khi thiết kế cho máy tính để bàn hoặc bất kỳ thiết bị nào khác, chúng ta nên ưu tiên thiết kế cho thiết bị di động (điều này sẽ làm cho trang web hiển thị nhanh hơn trên các thiết bị nhỏ hơn).
Điều này có nghĩa là chúng ta phải làm một số cải tiến trong CSS.
Khi độ rộng nhỏ hơn 768px, chúng ta nên sửa đổi thiết kế而不是 thay đổi độ rộng. Chúng tôi đã thực hiện thiết kế 'ưu tiên di động' như vậy:
Mẫu
/* Đối với điện thoại: */ [class*="col-"] { width: 100%; } @media only screen and (min-width: 768px) { /* Đối với máy tính để bàn: */ .col-1 {width: 8.33%;} .col-2 {width: 16.66%;} .col-3 {width: 25%;} .col-4 {width: 33.33%;} .col-5 {width: 41.66%;} .col-6 {width: 50%;} .col-7 {width: 58.33%;} .col-8 {width: 66.66%;} .col-9 {width: 75%;} .col-10 {width: 83.33%;} .col-11 {width: 91.66%;} .col-12 {width: 100%;} }
Một điểm ngắt khác
Bạn có thể thêm bất kỳ số điểm ngắt nào.
Chúng tôi cũng sẽ chèn một điểm ngắt giữa máy tính bảng và điện thoại.

Máy tính để bàn

Máy tính bảng

Điện thoại
Vì vậy, chúng tôi đã thêm một truy vấn truyền thông (tại 600 điểm ảnh), và thêm một nhóm lớp mới cho các thiết bị lớn hơn 600 điểm ảnh (nhưng nhỏ hơn 768 điểm ảnh):
Mẫu
Lưu ý, hai nhóm lớp gần như giống hệt nhau, duy nhất sự khác biệt là tên (col- và col-s-):
/* Đối với điện thoại: */ [class*="col-"] { width: 100%; } @media only screen and (min-width: 600px) { /* Đối với máy tính bảng: */ .col-s-1 {width: 8.33%;} .col-s-2 {width: 16.66%;} .col-s-3 {width: 25%;} .col-s-4 {width: 33.33%;} .col-s-5 {width: 41.66%;} .col-s-6 {width: 50%;} .col-s-7 {width: 58.33%;} .col-s-8 {width: 66.66%;} .col-s-9 {width: 75%;} .col-s-10 {width: 83.33%;} .col-s-11 {width: 91.66%;} .col-s-12 {width: 100%;} } @media only screen and (min-width: 768px) { /* Đối với máy tính để bàn: */ .col-1 {width: 8.33%;} .col-2 {width: 16.66%;} .col-3 {width: 25%;} .col-4 {width: 33.33%;} .col-5 {width: 41.66%;} .col-6 {width: 50%;} .col-7 {width: 58.33%;} .col-8 {width: 66.66%;} .col-9 {width: 75%;} .col-10 {width: 83.33%;} .col-11 {width: 91.66%;} .col-12 {width: 100%;} }
Có hai nhóm lớp giống hệt nhau có vẻ lạ lùng, nhưng nó cho chúng ta cơ hội sử dụng HTML để quyết định điều gì sẽ xảy ra với các cột tại mỗi điểm ngắt:
Mã HTML mẫu
Đối với máy tính để bàn:
Phần đầu tiên và thứ ba sẽ chiếm 3 cột. Phần giữa sẽ chiếm 6 cột.
Đối với máy tính bảng:
Phần đầu tiên sẽ chiếm 3 cột, phần thứ hai sẽ chiếm 9 cột, phần thứ ba sẽ hiển thị dưới phần đầu tiên và thứ hai, và sẽ chiếm 12 cột:
<div class="row"> <div class="col-3 col-s-3">...</div> <div class="col-6 col-s-9">...</div> <div class="col-3 col-s-12">...</div> </div>
Điểm chín thiết bị tiêu chuẩn
Có vô số màn hình và thiết bị có kích thước chiều cao và chiều rộng khác nhau, vì vậy rất khó tạo ra điểm chín chính xác cho mỗi thiết bị. Để đơn giản hóa, bạn có thể nhắm đến năm nhóm này:
Mẫu
/* Các thiết bị siêu nhỏ (điện thoại, 600px và nhỏ hơn) */ @media only screen and (max-width: 600px) {...} /* Các thiết bị nhỏ (máy tính bảng dọc và điện thoại lớn, 600 pixel và lớn hơn) */ @media only screen and (min-width: 600px) {...} /* Các thiết bị trung (máy tính bảng ngang, 768 pixel và lớn hơn) */ @media only screen and (min-width: 768px) {...} /* Các thiết bị lớn (laptop/máy tính để bàn, 992px và lớn hơn) */ @media only screen and (min-width: 992px) {...} /* Các thiết bị lớn (laptop và máy tính để bàn, 1200px và lớn hơn) */ @media only screen and (min-width: 1200px) {...}
Hướng: Hình người / Cảnh quan
Điều kiện truyền thông cũng có thể được sử dụng để thay đổi bố cục của trang web dựa trên hướng của trình duyệt.
Bạn có thể thiết lập một nhóm thuộc tính CSS, những thuộc tính này chỉ áp dụng khi chiều rộng của cửa sổ trình duyệt lớn hơn chiều cao, tức là hướng "ngang":
Mẫu
Nếu hướng là chế độ ngang (landscape mode), thì nền trang web sẽ là màu xanh nhạt:
@media only screen and (orientation: landscape) { body { background-color: lightblue; } }
Sử dụng điều kiện truyền thông để ẩn yếu tố
Một cách sử dụng phổ biến khác của điều kiện truyền thông là ẩn các yếu tố trên các kích thước màn hình khác nhau:
Mẫu
/* Nếu kích thước màn hình là 600 pixel hoặc nhỏ hơn, hãy ẩn yếu tố này */ @media only screen and (max-width: 600px) { div.example { display: none; } }
Thay đổi kích thước font bằng điều kiện truyền thông
Bạn cũng có thể sử dụng điều kiện truyền thông để thay đổi kích thước font của các yếu tố trên các kích thước màn hình khác nhau:
Mẫu
/* Nếu kích thước màn hình là 601px hoặc lớn hơn, hãy đặt font-size của <div> thành 80px */ @media only screen and (min-width: 601px) {}} div.example { font-size: 80px; } } /* Nếu kích thước màn hình là 600px hoặc nhỏ hơn, hãy đặt font-size của <div> là 30px */ @media only screen and (max-width: 600px) { div.example { font-size: 30px; } }
Tài liệu tham khảo CSS @media
Để có một cái nhìn toàn diện về tất cả các loại hình truyền thông và các tính năng / biểu thức, hãy xem Xem @media quy tắc trong Tài liệu tham khảo CSS.
- Trang trước Xem lưới RWD
- Trang tiếp theo Ảnh RWD