[CSS] Tìm hiểu về đơn vị px, pt, percentages, em và rem

đơn vị css

Trong CSS, việc sử dụng các đơn vị đo lường chính xác là vô cùng quan trọng để tạo bố cục trang web và thiết kế giao diện người dùng hiệu quả. Bài viết này sẽ giới thiệu chi tiết về 5 đơn vị phổ biến được sử dụng trong CSS: px, pt, percentages, em và rem.

1. Đơn vị px (pixel)

  • Định nghĩa: Pixel là đơn vị tuyệt đối, tương ứng với một điểm ảnh trên màn hình hiển thị.
  • Ưu điểm:
    • Cung cấp độ chính xác cao trong việc thiết kế giao diện.
    • Đảm bảo bố cục trang web hiển thị đồng nhất trên các thiết bị có cùng độ phân giải màn hình.
  • Nhược điểm:
    • Khó khăn trong việc điều chỉnh kích thước bố cục cho phù hợp với các thiết bị có độ phân giải màn hình khác nhau.
    • Gây ra vấn đề về khả năng tiếp cận cho người dùng có vấn đề về thị lực.

Ví dụ:

.element {
  width: 100px; /* Chiều rộng 100 điểm ảnh */
  height: 50px; /* Chiều cao 50 điểm ảnh */
}

2. Đơn vị pt (point)

  • Định nghĩa: Point là đơn vị tương đối, dựa trên kích thước phông chữ mặc định của trình duyệt. 1pt tương đương với 1/72 inch.
  • Ưu điểm:
    • Đảm bảo tính tương thích với các thiết bị có độ phân giải màn hình khác nhau.
  • Nhược điểm:
    • Khó khăn trong việc kiểm soát kích thước chính xác của các yếu tố.
    • Ít được sử dụng trong thực tế.

Ví dụ:

.element {
  font-size: 12pt; /* Kích thước phông chữ 12 điểm */
}

3. Đơn vị percentages (%)

  • Định nghĩa: Percentage là đơn vị tương đối, thể hiện tỷ lệ phần trăm so với một giá trị tham chiếu.
  • Ưu điểm:
    • Dễ dàng điều chỉnh kích thước bố cục cho phù hợp với các thiết bị có độ phân giải màn hình khác nhau.
    • Đảm bảo tính tương thích và khả năng tiếp cận.
  • Nhược điểm:
    • Khó khăn trong việc thiết kế bố cục với kích thước chính xác.

Ví dụ:

.element {
  width: 50%; /* Chiều rộng 50% so với container cha */
  height: 25%; /* Chiều cao 25% so với container cha */
}

4. Đơn vị em

  • Định nghĩa: Em là đơn vị tương đối, dựa trên kích thước phông chữ của phần tử cha. 1em tương đương với 100% kích thước phông chữ của phần tử cha.
  • Ưu điểm:
    • Giúp tạo bố cục linh hoạt, tự động điều chỉnh theo kích thước phông chữ.
    • Đảm bảo tính tương thích và khả năng tiếp cận.
  • Nhược điểm:
    • Khó khăn trong việc kiểm soát kích thước chính xác của các yếu tố.

Ví dụ:

.element {
  font-size: 16px;
  padding: 1em; /* Khoảng đệm 1em, tương đương với 16px */
}

5. Đơn vị rem

  • Định nghĩa: Rem là đơn vị tương đối, dựa trên kích thước phông chữ của phần tử gốc (html). 1rem tương đương với 100% kích thước phông chữ của phần tử gốc.
  • Ưu điểm:
    • Giúp tạo bố cục linh hoạt, tự động điều chỉnh theo kích thước phông chữ của phần tử gốc.
    • Đảm bảo tính tương thích và khả năng tiếp cận.
    • Khắc phục nhược điểm của em khi tính toán dựa trên kích thước phông chữ của phần tử cha.
  • Nhược điểm:
    • Ít được hỗ trợ bởi các trình duyệt cũ.

Ví dụ:

html {
  font-size: 16px;
}

.element {
  padding: 1rem; /* Khoảng đệm 1rem, tương đương với 16px */
}

Bảng so sánh các đơn vị

Đơn vị Loại Ưu điểm Nhược điểm Ví dụ
px Tuyệt đối Độ chính xác cao Khó điều chỉnh cho các thiết bị khác nhau .element { width: 100px; }
pt Tương đối Tương thích với các thiết bị khác nhau Khó kiểm soát kích thước chính xác .element { font-size: 12pt; }
% Tương đối Dễ điều chỉnh cho các thiết bị khác nhau Khó thiết kế bố cục với kích thước chính xác .element { width: 50%; }
em Tương đối Bố cục linh hoạt, tự động điều chỉnh theo kích thước phông chữ Khó kiểm soát kích thước chính xác .element { padding: 1em; }
rem Tương đối Bố cục linh hoạt, tự động điều chỉnh theo kích thước phông chữ gốc Ít được hỗ trợ bởi các trình duyệt cũ .element { padding: 1rem; }

Lời kết

Việc lựa chọn đơn vị phù hợp trong CSS phụ thuộc vào mục đích sử dụng và yêu cầu thiết kế của bạn. Hiểu rõ các đặc điểm và ưu nhược điểm của từng đơn vị sẽ giúp bạn tạo bố cục trang web hiệu quả và tương thích với nhiều thiết bị khác nhau.

Lưu ý:

  • Bài viết này chỉ giới thiệu 5 đơn vị phổ biến trong CSS. Ngoài ra, còn có một số đơn vị khác như vh, vw, ch, v.v.
  • Bạn nên sử dụng kết hợp các đơn vị khác nhau để tạo bố cục linh hoạt và hiệu quả.
  • Nên sử dụng các công cụ hỗ trợ như CSS preprocessors để đơn giản hóa việc sử dụng các đơn vị trong CSS.

Tác giả

  • is-avatar

    Ilya S. (Hebrew: איליה סוצקבר; born 8 December 1986) is an Israeli-Canadian computer scientist who specializes in machine learning. He has made several major contributions to the field of deep learning. With Alex Krizhevsky and Geoffrey Hinton, he co-invented AlexNet, a convolutional neural network.