Sử dụng Đơn Vị Tương Đối trong Thiết Kế Responsive

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 22 tháng 1, 2025

Trong bài học này, bạn sẽ tìm hiểu cách sử dụng đơn vị tương đối trong CSS để thiết kế web responsive (phản hồi linh hoạt). Các đơn vị tương đối như %, em, rem, vw, và vh giúp giao diện tự động điều chỉnh kích thước theo thiết bị và kích thước màn hình, mang lại trải nghiệm tốt nhất cho người dùng.

  • %: Đơn vị tỉ lệ dựa trên kích thước của phần tử cha.
  • em: Kích thước dựa trên font-size của phần tử cha.
  • rem: Kích thước dựa trên font-size của phần tử gốc (html).
  • vwvh: Kích thước dựa trên chiều rộng và chiều cao của viewport (cửa sổ trình duyệt).

1. Các đơn vị tương đối phổ biến

  • % (Phần trăm):

    • Dùng để đặt chiều rộng, chiều cao hoặc margin/padding.
    • Giá trị dựa trên kích thước của phần tử cha.
    • Ví dụ:
      div {
          width: 50%; /* Chiếm 50% chiều rộng của phần tử cha */
      }
      
  • em:

    • Dựa trên font-size của phần tử cha.
    • Ví dụ:
      p {
          font-size: 2em; /* Gấp đôi kích thước font của phần tử cha */
      }
      
  • rem:

    • Dựa trên font-size của phần tử gốc (html).
    • Ví dụ:
      html {
          font-size: 16px;
      }
      h1 {
          font-size: 2rem; /* 32px, gấp đôi kích thước font của html */
      }
      
  • vwvh:

    • vw: 1% chiều rộng của viewport.
    • vh: 1% chiều cao của viewport.
    • Ví dụ:
      div {
          width: 50vw; /* 50% chiều rộng của cửa sổ trình duyệt */
          height: 50vh; /* 50% chiều cao của cửa sổ trình duyệt */
      }
      

2. Ưu điểm của đơn vị tương đối

  • Tự động điều chỉnh kích thước phù hợp với màn hình.
  • Dễ dàng duy trì tính nhất quán trong thiết kế.
  • Phù hợp với các thiết bị có độ phân giải khác nhau.

3. Ví dụ thực tế

Tạo một khối nội dung responsive:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        body {
            font-size: 16px; /* Cơ sở cho rem */
        }
        .container {
            width: 80%; /* Chiếm 80% chiều rộng cha */
            padding: 2rem; /* 32px dựa trên font-size gốc */
            background-color: lightblue;
        }
        .box {
            width: 50vw; /* Chiếm 50% chiều rộng viewport */
            height: 20vh; /* Chiếm 20% chiều cao viewport */
            background-color: coral;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box"></div>
    </div>
</body>
</html>

Thực hành

  1. Tạo một thiết kế trong đó chiều rộng các phần tử được điều chỉnh bằng %vw.
  2. Sử dụng emrem để định kích thước văn bản theo cách linh hoạt.
  3. Kết hợp vhvw để tạo các khối nội dung có kích thước phản hồi theo viewport.

Kết luận

Đơn vị tương đối trong CSS là công cụ mạnh mẽ để xây dựng giao diện linh hoạt và dễ thích nghi. Bằng cách hiểu và áp dụng chúng, bạn có thể đảm bảo rằng thiết kế của mình luôn đẹp mắt và phù hợp trên mọi thiết bị.

Website Logo

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.

Bình luận

Website Logo

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.

Liên hệ công việc qua email dưới đây.

lhvuctu@gmail.com

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ