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

Phạm Văn Siêng 24/09/2019, Cập nhật: 4 năm trước
Bài này thuộc phần 5 của 26 phần trong serie Học CSS cơ bản

Contents

  • 1.Đơn vị tuyệt đối
  • 2.Đơn vị tương đối
  • 3.Lời kết
    • 3.1.Xem tiếp bài trong serie
  • 4.Bài liên quan

Mặc dù có lẽ mình sẽ cần nói qua hơi nhiều các khái niệm cơ bản trước khi bắt đầu với việc tìm hiểu các thuộc tính CSS. Dù mất thời gian hơn nhưng nó sẽ giúp bạn đỡ bối rối về sau này khi gặp những khái niệm đó.

Một trong các khái niệm thường gặp nhất là hiểu đơn vị đo lường được sử dụng khi viết CSS, mặc dù có nhiều loại đơn vị nhưng bạn có thể chỉ cần sử dụng một loại đơn vị khi làm website, hoặc là hai chứ không bắt buộc là dùng hết. Nhưng nếu bạn hiểu rõ về nó thì bạn sẽ dễ dàng hơn trong việc tính toán đo lường các phần tử trong website.

Tham khảo: Giải thích ý nghĩa các đơn vị tại Mozilla Developers Network

Trong bài này mình chỉ đề cập đến các đơn vị thường dùng.

Về đơn vị, thì trong CSS có hai loại đơn vị là Absolute Units (đơn vị tuyệt đối) và Relative Units (đơn vị tương đối). Trong đó:

Đơn vị tuyệt đối

Là các đơn vị vật lý đã được định nghĩa sẵn và đại diện cho các đơn vị đo lường vật lý. Các đơn vị này không bị phụ thuộc và không hề thay đổi bởi bất cứ tác động nào. Ví dụ như đơn vị mét, xen-ti-mét,..là các đơn vị tuyệt đối.

Các đơn vị tuyệt đối sử dụng trong CSS gồm có:

  • px: Đây là một đơn vị được sử dụng trên màn hình hiển thị, một px sẽ tương đương với một điểm ảnh trên màn hình hiển thị. Chất lượng của điểm ảnh sẽ hoàn toàn khác nhau trên một số thiết bị, ví dụ như một điểm ảnh trên các thiết bị in ấn sẽ khác với một điểm ảnh trên các thiết bị màn hình độ phân giải thấp.
  • pt: Đơn vị point và cứ 1 ich = 72pt.

See the Pen QwXWJJ by Thach Pham (@thachpham92) on CodePen.

Đơn vị tương đối

Là các đơn vị đo lường được sử dụng trong CSS ở mức tương đối, nghĩa là nó có thể sẽ được thay đổi bởi các thành phần khác ví dụ như thay đổi phụ thuộc vào kích thước màn hình.

Các đơn vị tương đối được sử dụng trong CSS gồm có:

  • % (percentages): Là đơn vị tham chiếu tỷ lệ so với một phần tử mẹ của nó dựa vào kích thước. Ví dụ bạn có một cái khung với kích thước là 500px và khung bên trong có kích thước là 50% thì nó sẽ là 250px. Nếu bạn sử dụng đơn vị phần trăm này để gán kích thước cho thẻ  trên website thì nó sẽ thay đổi theo kích thước màn hình hoặc/cửa sổ website.
  • em: Là đơn vị tham chiếu tỷ lệ so với phần tử mẹ của nó dựa vào giá trị của thuộc tính font-size. Ví dụ bạn đặt cho font-size cho phần tử mẹ của nó là 19px thì nếu bạn sử dụng em trong khu vực phần tử đó thì 1em = 19px.
  • rem: Là đơn vị tham chiếu tỷ lệ so với phần tử gốc của một website dựa vào thuộc tính font-size, nghĩa là sẽ biến đổi tùy theo giá trị của thuộc tính font-size trong thẻ . Cũng như rem, nếu bạn khai báo font-size cho thẻ  là 16px thì 1rem = 16px.

Ví dụ về đơn vị %.

See the Pen ogrNJY by Thach Pham (@thachpham92) on CodePen.

Ví dụ về đơn vị em

See the Pen bNPGOj by Thach Pham (@thachpham92) on CodePen.

Còn đơn vị rem thì cũng y hệt như em thôi, chỉ có điều là nó phụ thuộc vào font-size của phần tử .

Lời kết

Bây giờ bạn đã hiểu ý nghĩa của từng đơn vị chưa nào? Thực ra trên tất cả các đơn vị trên thì bạn nên sử dụng đơn vị px cho dễ nếu bạn mới bắt đầu học CSS hoặc làm giao diện website đơn giản, còn các đơn vị khác bạn sẽ có dịp sử dụng khi đã có kinh nghiệm sử dụng CSS để làm các giao diện phức tạp hơn.

Xem tiếp bài trong serie

Phần trước: [Học CSS] Tìm hiểu về vùng chọn cơ bản (Selector)Phần kế tiếp: [Học CSS] Các thuộc tính cho Text (văn bản)

Bài liên quan

  • [Học CSS] Tùy biến loại phần tử với “display”
  • [Học CSS] Reset CSS là gì và vì sao nên reset CSS
  • [Học CSS] Position và Absolute – Relative
  • [Học CSS] Trang trí font chữ cho văn bản
  • [Học CSS] Thực hành tạo layout đơn giản
  • [Học CSS] Một vài Pseudo Class đơn giản

Content retrieved from:
https://thachpham.com/web-development/html-css/cac-don-vi-do-luong-trong-css.html
.

Phạm Văn Siêng 24/09/2019, Cập nhật: 4 năm trước
Ý KIẾN THÀNH VIÊN
    Chưa có bình luận