Đăng nhập

Bài 22: Media queries – Viết CSS cho từng kích thước thiết bị

Khi bạn truy cập một trang web bằng điện thoại, máy tính bảng hoặc màn hình lớn, giao diện thường sẽ co giãn hoặc thay đổi để phù hợp. Đó là nhờ vào Media Queries – một tính năng cực kỳ quan trọng trong CSS giúp trang web trở nên responsive (phản hồi tốt trên mọi thiết bị).

Trong bài này, bạn sẽ học:

  • Cú pháp và cách viết media query
  • Thay đổi bố cục hoặc kích thước theo màn hình
  • Các điểm ngắt (breakpoints) phổ biến
  • Cách tổ chức mã CSS cho responsive tốt

1. Media query là gì?

Media query giúp bạn áp dụng CSS riêng biệt cho từng loại thiết bị hoặc kích thước màn hình.

Cú pháp cơ bản:

@media (max-width: 768px) {
  /* CSS áp dụng khi màn hình nhỏ hơn hoặc bằng 768px */
}

2. Ví dụ đơn giản

body {
  background-color: white;
}

@media (max-width: 768px) {
  body {
    background-color: lightgray;
  }
}

→ Trên điện thoại, nền chuyển thành màu xám.


3. Phân biệt max-widthmin-width

LoạiÝ nghĩa
max-widthCSS chạy khi màn hình nhỏ hơn hoặc bằng kích thước
min-widthCSS chạy khi màn hình lớn hơn hoặc bằng kích thước

Ví dụ:

/* Cho điện thoại */
@media (max-width: 480px) { ... }

/* Cho tablet trở lên */
@media (min-width: 768px) { ... }

4. Các breakpoint phổ biến

Thiết bịKích thước (px)
Điện thoại nhỏ≤ 480px
Điện thoại lớn481px – 767px
Tablet768px – 1024px
Laptop/PC≥ 1025px

5. Thực hành: làm layout co giãn

style.css

.container {
  width: 80%;
  margin: auto;
  background: #e0f7fa;
  padding: 20px;
}

.title {
  font-size: 36px;
}

/* Mobile: font nhỏ lại */
@media (max-width: 600px) {
  .title {
    font-size: 24px;
  }

  .container {
    width: 95%;
  }
}

index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Bài 22 – Media Queries</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <div class="container">
    <h1 class="title">Trang web của tôi</h1>
    <p>Giao diện thay đổi khi thu nhỏ màn hình.</p>
  </div>

</body>
</html>

6. Tổ chức file CSS cho responsive

Bạn có thể:

  • Viết media query ngay bên dưới phần tử (dễ hiểu cho file nhỏ)
  • Hoặc tách thành phần cuối CSS, chia theo /* Điện thoại */, /* Tablet */

Ví dụ:

/* Mặc định: desktop */
.navbar { ... }

/* Tablet */
@media (max-width: 1024px) { .navbar { ... } }

/* Mobile */
@media (max-width: 768px) { .navbar { ... } }

7. Ghi nhớ

Câu hỏiCâu trả lời
Muốn viết CSS riêng cho điện thoại?Dùng @media (max-width: 768px)
Viết cho màn hình lớn?Dùng min-width
Breakpoint phổ biến?480px, 768px, 1024px
Có thể dùng nhiều điều kiện?Có – dùng and, or, not, v.v.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.