Đăng nhập

Bài 24: Đơn vị CSS – px, %, em, rem, vw, vh

Trong CSS, mọi thứ đều có kích thước: font chữ, chiều rộng, khoảng cách, khung, v.v.

Để kiểm soát chúng chính xác và linh hoạt, bạn cần hiểu rõ đơn vị đo – và chọn đúng đơn vị sẽ giúp giao diện:

  • Dễ co giãn, responsive tốt
  • Giữ tỷ lệ chuẩn, không bị “vỡ layout”
  • Tối ưu cho nhiều loại thiết bị, độ phân giải

1. Các loại đơn vị trong CSS

Chia làm 2 nhóm:

NhómVí dụ
Đơn vị tuyệt đốipx, pt, cm
Đơn vị tương đối%, em, rem, vw, vh

2. px – đơn vị cố định (pixel)

h1 {
  font-size: 24px;
}
  • 1 pixel = 1 điểm ảnh (tùy thiết bị)
  • Không thay đổi theo kích thước màn hình
  • Dễ dùng, nhưng thiếu linh hoạt khi responsive

3. % – phần trăm của phần tử cha

.container {
  width: 80%;
}
  • Phụ thuộc vào kích thước phần tử chứa nó
  • Thường dùng để làm layout co giãn
  • Cũng có thể dùng cho padding, margin, height

4. em – theo kích thước font của phần tử cha

p {
  font-size: 1.2em; /* = 1.2 * font-size của cha */
}
  • 1em = 100% cỡ chữ của cha
  • Nếu cha là 16px, thì 1.5em = 24px
  • Dùng cho font-size, padding, margin…

Lưu ý: Có thể bị “nhân lũy tiến” nếu lồng nhiều lớp.


5. rem – theo kích thước font của html (gốc)

html {
  font-size: 16px;
}

h2 {
  font-size: 2rem; /* = 32px */
}
  • rem = root em (font-size của thẻ html)
  • Ổn định hơn em, ít bị ảnh hưởng bởi cha
  • Rất phổ biến trong thiết kế hiện đại

6. vw, vh – theo kích thước khung nhìn

Đơn vịÝ nghĩa
1vw1% chiều rộng của màn hình
1vh1% chiều cao của màn hình

Ví dụ:

.hero {
  height: 100vh; /* Chiếm toàn màn hình */
  width: 100vw;
}

Rất hữu ích cho layout toàn trang, hero banner, v.v.


7. clamp – kết hợp nhiều đơn vị

h1 {
  font-size: clamp(18px, 5vw, 32px);
}
  • Kích thước co giãn theo khung nhìn (vw)
  • Nhưng giới hạn min – max để không quá to hay quá nhỏ
  • Rất mạnh cho responsive typography

8. So sánh nhanh

Đơn vịƯu điểmNhược điểm
pxDễ kiểm soát, chính xácKhông responsive
%Co giãn theo chaPhức tạp nếu cha không cố định
emLinh hoạt, phù hợp cho paddingDễ gây lồng hiệu ứng không mong
remỔn định, dễ predictPhải thiết lập html {font-size}
vw/vhTốt cho layout toàn trangPhức tạp khi dùng với header/footer

Gợi ý sử dụng đơn vị

Trường hợpĐơn vị nên dùng
Font chữ toàn trangrem, clamp
Khoảng cách trong phần tửem, rem
Layout co giãn theo màn hình%, vw, vh
Header toàn màn hình100vh
Padding/margin theo tỷ lệ chữem

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.