[CSS Căn bản] Responsive sử dụng truy vấn media trong CSS

[CSS Căn bản] Responsive sử dụng truy vấn media trong CSS

Responsive là một tính năng phổ biến trên các website hiện đại ngày nay (. Khi CSS3 ra mắt, tính năng truy vấn media (Media Query) cũng được giới thiệu, đây là tính năng xác định vùng css sẽ được thực thi dựa theo kích thước màng hình được khai báo trong media. Trong bài viết này mình sẽ chia sẻ với bạn cách sử dụng truy vấn media trong CSS để tạo ra một website responsive tốt nhất.

Responsite là gì?, truy vấn media là gì ?

Responsite là từ dùng để chỉ khả năng tương thích với mọi kích thước trình duyệt của website. Ví dụ, cũng cùng một thẻ <div> nhưng trên màng hình laptop nó có độ rộng là 1000px, trên máy tính bảng là 700px và trên di động là 400px. Để làm được điều này bạn không cần phải lập trình hay css phức tạp, tính năng truy vấn media trong css sẽ giúp bạn làm tốt điều này một cách đơn giản. Vậy truy vấn media là gì?

Truy vấn media là một kỹ thuật mới trong CSS3, Chúng ta sử dụng các truy vấn media để tạo ra các điểm ngắt (breakpoint). Mỗi điểm ngắt sẽ đại diện cho một khoảng kích thước được khai báo trong media. Khi kích thước của trình duyệt nằm trong khoảng kích thước đã được khai báo trong media thì các css trong điểm ngắt sẽ được ưu tiên thực thi.

Sử dụng các điểm ngắt để thực thi những css phù hợp

Sử dụng các điểm ngắt để thực thi những css phù hợp

Sử dụng truy vấn media trong CSS để tạo giao diện responsive

Truy vấn media không khó sử dụng, Mặc dù có nhiều media_type và media_feature, tuy nhiên để có được giao diện respinsive bạn chỉ cần dùng một vài cái là đủ. Cú pháp của truy vấn media như sau:

@media not|only media_type and (media_feature) {
    CSS-Code;
}
  • not|only: là trừ loại media đó ra hoặc là chỉ áp dụng cho loại media đó thôi.
  • media_typelà loại media áp dụng, thường có allprintscreenspeech,.. phổ biến chỉ dụng screen.
  • media_feature: giá trị kích thước media như: max-widthmin-widthmin-device-widthmax-device-width,..
  • Có nhiều media_typemedia_feature, nhưng ở mức cơ bản nên mình sẽ không liệt kê hết ở đây.
  • Khi sử dụng media_feature thì bạn phải khai báo viewport với cú pháp: <meta name="viewport" content="width=device-width, initial-scale=1.0">trong thẻ <head> nhé.

Một số ví dụ sử dụng media để thiết lập responsive.

@media only screen and (max-width: 980px){
 .logo{
    witdh:20%
  }
}

Đoạn trên sẽ thực thi khi độ rộng kích thước viewport nằm trong khoảng từ 980px trở xuống.

@media only screen and (max-width: 580px) and (min-width: 320px){
  .logo{
    witdh:50%
  }
}

Đoạn trên sẽ thực thi khi độ rộng kích thước viewport nằm trong khoảng từ 320px đến 580px.

Dưới đây là đoạn CSS media khuyến nghị sử dụng thi bạn thiết kế website responsite

/* Màng hình laptop hoặc desktop lớn*/
@media (min-width: 1200px) {
}

/* Màng hình máy tính bảng lớn hoặc máy tính màng hình trung bình */
@media (min-width: 992px) and (max-width: 1199px) {
}

/* Màng hình máy tính bảng nhỏ hoặc máy tính màng hình nhỏ */
@media (min-width: 768px) and (max-width: 991px) {
}

/* Màng hình máy tính bảng rất nhỏ hoặc điện thoại di động */
@media (max-width: 767px) {
}

/* Điện thoại di động hoặc màng hình cực nhỏ */
@media (max-width: 480px) {
}
  • Lưu ý: khi thiết kế website responsite, các đơn vị tính nên sử dụng đơn vị tương đối như: em, ex, ch, rem, vw, vh, vmin, vmax, %. % là đơn vị thường sử dụng nhất. Hạn chế sử dụng các đơn vị tuyệt đối như px, pc, pt, in, mm, cm.

Bài này sẽ kết thúc series học CSS Căn bản. Nếu bạn có thắc mắc có thể comment để mình trả lời nhé.

Các bài liên quan

Tuấn ĐC

Tuấn ĐC

Tôi thích tự do, làm những gì mình thích, thích đi nhiều nơi và học được nhiều thứ.

Liên hết bài viết: ""