Thứ ba, 04/02/2020 | 00:00 GMT+7

Sử dụng Thuộc tính chiều cao dòng CSS để cải thiện khả năng đọc


Trong bài viết này, bạn sẽ tìm hiểu về thuộc line-height CSS và cách bạn có thể sử dụng nó để tạo văn bản dễ đọc, trực quan.

Bạn có thể đã thấy chiều cao dòng được sử dụng trước đây:

p {   font-size: 16px;   line-height: 1.2; } 

Nhưng nó hoạt động như thế nào và nó có role gì trong CSS?

Gốc chữ trong CSS

Nhiều ý tưởng trong CSS được rút ra từ kỷ luật về kiểu chữ . Một ví dụ là thuộc tính CSS line-height đặt khoảng cách giữa hai đường cơ sở của văn bản được bao bọc.

“Đường cơ sở” là đường tưởng tượng mà văn bản nằm trên đó.

trình diễn đường cơ sở

Ví dụ: nếu ta có đoạn văn bản ngắn này bên trong <div> :

<div>   The alligator went for a swim in the deep lagoon. </div> 

Nếu bạn kéo cửa sổ trình duyệt của bạn để văn bản được bao bọc sang dòng tiếp theo, bạn sẽ có hai đường cơ sở và chiều cao dòng (được biểu thị bằng các mũi tên màu vàng):

trình diễn chiều cao dòng

Giá trị lớn hơn cho thuộc line-height CSS sẽ mở rộng khoảng cách này và các giá trị nhỏ hơn sẽ thu hẹp nó.


Chiều cao dòng & khả năng đọc văn bản

Thuộc tính line-height đóng role trung tâm trong việc giúp user có thể đọc được văn bản. Khi bạn giảm kích thước line-height nó sẽ cảm thấy đông đúc. Đọc văn bản như thế này trong thời gian dài sẽ khiến user cảm thấy mệt mỏi:

chiều cao dòng nhỏ

Nếu nó quá lớn, user sẽ khó cảm thấy bị cuốn hút vào những gì họ đang đọc:

định kích thước chiều cao dòng

Nhưng khi bạn tìm được line-height , văn bản của bạn sẽ cảm thấy rộng rãi và hài hòa 💮🌺🌸

ví dụ về chiều cao dòng tốt

Việc tìm line-height sẽ khác nhau tùy theo nhu cầu của bạn, nhưng nó cũng phụ thuộc vào họ phông chữ mà bạn đang sử dụng. Điều này là do mỗi phông chữ có tính cách riêng và sẽ “đọc” khác nhau trong một khối văn bản đáng kể.

Ví dụ: Helvetica và Times New Roman sẽ yêu cầu khoảng cách line-height khác nhau ngay cả khi cả hai đều có cùng font-size .

Cú pháp cho chiều cao dòng

Bạn có thể cung cấp chiều cao dòng với tất cả các loại giá trị! Nó cũng khá khác biệt so với các thuộc tính CSS khác vì nó có thể chấp nhận các giá trị px% điển hình, nhưng nó cũng có giá trị “không có đơn vị” duy nhất:

/* Use browser default.  Typically "1.2" for  all the major browsers */ line-height: normal;  /* Unitless (only line-height can do this!) */ line-height: 1.2;  /* <length> values like px, rem, em, pt */ line-height: 3em;  /* <percentage> values */ line-height: 120%; 

Chiều cao dòng được biểu thị bằng mũi tên màu vàng.

bản trình diễn chiều cao dòng

Cách trình duyệt tính toán chiều cao dòng

Nếu bạn sử dụng phần trăm hoặc giá trị “không có đơn vị”, kích thước phông chữ sẽ được tính vào line-height kết quả. Ví dụ: cả hai đoạn mã dưới đây sẽ được trình duyệt tính thành 19.2px :

.myText {   font-size: 16px;   line-height: 1.2  /* (19.2px = 16 x 1.2) */ } 
.myText {   font-size: 16px;   line-height: 120%;  /* (19.2px = 16 x 1.2) */ } 

Tuy nhiên, nếu bạn sử dụng các giá trị “length” như px|em|rem|pt , thì font-size sẽ không được sử dụng để tính line-height :

.myText {   font-size: 16px;   line-height: 20px;  /* Always 20px! */ } 

Mặc dù cả giá trị phần trăm và giá trị "không đơn vị" dường như giống hệt nhau, nhưng có sự khác biệt nhỏ. Các phương pháp hay nhất đề xuất sử dụng các giá trị "không có đơn vị" khi nào có thể

Kết luận

Nói chung, line-height tốt nằm trong repository ảng từ 1,5 đến 1,7 đối với hầu hết các phông chữ. Ví dụ: Alligator.io sử dụng chiều cao dòng là 1,6. Đó là nghệ thuật hơn là khoa học và nhiều lần bạn sẽ thấy mình đang mở “Công cụ dành cho nhà phát triển” của trình duyệt để di chuyển line-height cho đến khi cảm thấy “vừa phải” ✨👌

Để tìm hiểu thêm, hãy truy cập MDN để biết tài liệu về độ cao dòng .


Tags:

Các tin liên quan

Cách sử dụng CSS: root Pseudo-Class Selector
2020-01-15
Khi nào bạn nên sử dụng quy tắc CSS! Important?
2020-01-14
Thủ thuật sử dụng CSS translateZ () và phối cảnh ()
2019-12-13
Cách hiển thị CSS trên server ứng dụng React
2019-12-12
Cách tạo Thư viện ảnh cuộn vô hạn với React và CSS Grid
2019-12-12
Cách tạo node tải xuống với các tương tác nhỏ với CSS, anime.js và segment.js
2019-12-12
Cách giải quyết tắc nghẽn CSS quy mô lớn với ITCSS và BEM
2019-12-12
Đặt, giãn cách và mật độ trong CSS Grid
2019-12-12
Hiểu tính cụ thể trong CSS
2019-09-03
CSS sẽ thay đổi Thuộc tính: Khi nào và Không sử dụng Nó
2019-08-26