Đơn vị kích thước CSS (px rem em vh)
Ưu tiên rem cho cỡ chữ giao diện; chỉ dùng px cho viền mảnh và chi tiết cần chính xác pixel.
| Đơn vị | Tương đối theo | Công dụng điển hình |
|---|---|---|
| px | Pixel thiết bị (pixel CSS) | Viền, biểu tượng chính xác |
| rem | Cỡ chữ phần tử gốc | Thang chữ, khoảng cách |
| em | Cỡ chữ phần tử cha | Kích thước cục bộ trong component |
| % | Thuộc tính phần tử cha | Chiều rộng, bố cục linh hoạt |
| vw | 1% chiều rộng viewport | Phần tràn viền |
| vh | 1% chiều cao viewport | Chiều cao hero (chú ý UI di động) |
| vmin / vmax | Cạnh nhỏ/lớn của viewport | Kích thước đáp ứng gần vuông |
| ch | Chiều rộng ký tự “0” | Khối mã, trường monospace |
| ex | Chiều cao x của phông | Typo tinh tế hiếm gặp |
| svh / lvh / dvh | Viewport nhỏ/lớn/động | Chiều cao an toàn trên trình duyệt di động |
Ghi chú
- Trên di động, 100vh có thể bao gồm thanh trình duyệt bị ẩn — ưu tiên dvh/svh khi được hỗ trợ.
- Cỡ chữ người dùng ảnh hưởng tới rem — điều này thường tốt cho khả năng truy cập.
Câu hỏi thường gặp
- 1rem bằng bao nhiêu px?
- 1rem bằng cỡ chữ của phần tử gốc; với mặc định 16 px thì 1rem = 16 px.
- em khác rem thế nào?
- rem luôn tính theo cỡ chữ của phần tử gốc, còn em tính theo cỡ chữ mà phần tử hiện tại thừa kế.
- Vì sao 100vh không chính xác trên di động?
- Trình duyệt di động ẩn/hiện thanh địa chỉ nên 100vh có thể vượt vùng nhìn thấy; hãy dùng dvh hoặc svh nếu được hỗ trợ.