0
0
Lập trình
Admin Team
Admin Teamtechmely

Tối ưu hóa Website với Media Queries và Box Shadows

Đăng vào 7 tháng trước

• 4 phút đọc

Tối ưu hóa Website Responsive với Media Queries, Overflow và Box Shadows

Khi xây dựng một website, điều quan trọng là nó phải hiển thị tốt trên di động, máy tính bảng và máy tính để bàn. Điều này được gọi là thiết kế responsive. Trong bài viết này, chúng ta sẽ tìm hiểu ba công cụ CSS quan trọng giúp cho việc thiết kế responsive:

  • Media Queries
  • Overflow
  • Box Shadows (với spread-radius)

Mục lục

  1. Sự khác biệt giữa max-widthmin-width
  2. Overflow
  3. Box Shadows (với Spread Radius)
  4. Dự án Demo: Responsive Card
  5. Thực hành tốt nhất
  6. Những cạm bẫy phổ biến
  7. Mẹo hiệu suất
  8. Khắc phục sự cố
  9. Câu hỏi thường gặp

1. Sự khác biệt giữa max-widthmin-width

max-width

  • max-width → Các kiểu dáng sẽ được áp dụng khi màn hình đến kích thước đó hoặc nhỏ hơn.

    Ví dụ: @media (max-width: 600px) áp dụng CSS cho màn hình ≤ 600px.

    👉 Phù hợp để thu nhỏ giao diện (máy tính để bàn → di động).

min-width

  • min-width → Các kiểu dáng sẽ được áp dụng khi màn hình lớn hơn hoặc bằng kích thước đó.

    Ví dụ: @media (min-width: 601px) áp dụng CSS cho màn hình ≥ 601px.

    👉 Phù hợp để mở rộng giao diện (di động → máy tính để bàn).

💡 Mẹo: Sử dụng min-width (phương pháp mobile-first) vì dễ dàng mở rộng thiết kế khi màn hình lớn hơn.


2. Overflow

Đôi khi nội dung lớn hơn khung chứa của nó. Thuộc tính overflow kiểm soát cách thức mà nội dung thừa được xử lý.

css Copy
.box {
  width: 200px;
  height: 100px;
  overflow: auto; /* thêm thanh cuộn nếu cần */
}

Các loại Overflow

  • visible → Mặc định, nội dung sẽ ra ngoài.
  • hidden → Cắt nội dung thừa.
  • scroll → Luôn hiển thị thanh cuộn.
  • auto → Chỉ hiển thị thanh cuộn khi cần thiết.

3. Box Shadows (với Spread Radius)

Box shadows tạo chiều sâu và làm cho các phần tử trông giống như thẻ hoặc khối nổi.

css Copy
.card {
  width: 250px;
  height: 150px;
  background: white;
  box-shadow: 0 4px 8px 5px rgba(0,0,0,0.2);
}

📌 Cú pháp:

css Copy
box-shadow: offset-x offset-y blur-radius spread-radius color;
  • offset-x → bóng ngang (trái/phải)
  • offset-y → bóng dọc (trên/dưới)
  • blur-radius → độ mềm mại của bóng
  • spread-radius → làm lớn/nhỏ bóng theo mọi hướng
  • color → màu bóng (có độ trong suốt)

👉 Nếu spread-radius = 10px, bóng sẽ lớn ra ngoài.
👉 Nếu spread-radius = -5px, bóng sẽ nhỏ lại bên trong.


4. Dự án Demo: Responsive Card

Dưới đây là một dự án nhỏ sử dụng cả ba khái niệm trên:

html Copy
<!DOCTYPE html>
<html lang="vi">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Responsive Card</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="card">
    <h2>Thẻ Responsive</h2>
    <p>Thẻ này sẽ thay đổi kích thước trên các màn hình khác nhau. Hãy thử thu nhỏ hoặc phóng to cửa sổ!</p>
  </div>
</body>
</html>

CSS (style.css)

css Copy
body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #f4f4f4;
  margin: 0;
  font-family: Arial, sans-serif;
}

.card {
  width: 90%;
  max-width: 400px;
  padding: 20px;
  background: white;
  border-radius: 10px;
  overflow: auto;
  box-shadow: 0 6px 12px 4px rgba(0,0,0,0.2);
  transition: all 0.3s ease;
}

/* Mobile first */
@media (min-width: 600px) {
  .card {
    max-width: 600px;
    box-shadow: 0 8px 16px 8px rgba(0,0,0,0.2);
  }
}

@media (min-width: 900px) {
  .card {
    max-width: 800px;
    box-shadow: 0 10px 20px 12px rgba(0,0,0,0.2);
  }
}

✅ Trên di động, thẻ nhỏ và gọn gàng.
✅ Trên máy tính bảng, thẻ lớn hơn với bóng lớn hơn.
✅ Trên máy tính để bàn, thẻ mở rộng hơn với hiệu ứng bóng mạnh hơn.


5. Thực hành tốt nhất

  • Luôn sử dụng phương pháp mobile-first với media queries.
  • Kiểm tra giao diện trên nhiều thiết bị khác nhau.
  • Sử dụng overflow hợp lý để bảo đảm nội dung không bị cắt bớt.

6. Những cạm bẫy phổ biến

  • Không sử dụng unit phù hợp: Ví dụ, sử dụng px thay vì % hoặc em.
  • Quá nhiều media queries: Nên tổng hợp để giảm độ phức tạp.

7. Mẹo hiệu suất

  • Sử dụng min-width để tối ưu hóa trải nghiệm trên di động.
  • Tránh sử dụng box shadows quá mức để không làm giảm hiệu suất.

8. Khắc phục sự cố

Nếu nội dung không hiển thị đúng:

  • Kiểm tra các thuộc tính CSS có thể gây xung đột.
  • Kiểm tra các media queries để đảm bảo chúng được thiết lập chính xác.

9. Câu hỏi thường gặp

Hỏi: Tại sao nên sử dụng media queries trong thiết kế responsive?
Đáp: Media queries cho phép bạn điều chỉnh giao diện của website cho các kích thước màn hình khác nhau, tạo trải nghiệm người dùng tốt hơn.


Kết luận

Sử dụng media queries để làm cho trang web của bạn đẹp trên mọi thiết bị. Sử dụng overflow để xử lý nội dung đúng cách. Sử dụng box shadows với spread-radius để thêm phong cách và chiều sâu. Những mẹo đơn giản này sẽ giúp website của bạn trông chuyên nghiệp và responsive hơn. 🚀

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào