Lưu ý, bạn làm cần phải xem xét chính xác những gì bạn có nghĩa là bằng cách căn giữa dọc.
Phông chữ được hiển thị trên đường cơ sở, chạy dọc theo cuối văn bản. Không gian dọc được phân bổ như sau:
---
^
| leading
|
--
^ Y Y
| Y Y
| Y Y
| ascent Y y y
| Y y y
| Y y y
-- baseline ______Y________y_________
| y
v descent yy
--
Hàng đầu chỉ đơn giản là không gian được đề xuất của phông chữ giữa các dòng. Vì lợi ích của định tâm theo chiều dọc giữa hai điểm, bạn nên bỏ qua hàng đầu (nó ledding, BTW, không leeding; trong typography chung nó là/là khoảng cách dẫn chèn giữa các dòng trong một tấm in).
Vì vậy, đối centering ascenders văn bản và xuống của, bạn muốn
baseline=(top+((bottom+1-top)/2) - ((ascent + descent)/2) + ascent;
Nếu không có trận chung kết "+ đi lên", bạn có vị trí cho phía trên cùng của phông chữ; do đó việc tăng độ cao đi từ đỉnh lên đường cơ sở. Ngoài ra, lưu ý rằng chiều cao phông chữ nên bao gồm hàng đầu, nhưng một số phông chữ không bao gồm nó, và do sự khác biệt làm tròn, chiều cao phông chữ có thể không chính xác bằng nhau (dẫn + đi lên + gốc).
Nguồn
2009-06-28 22:02:32
Oh wow, Đó là một lời giải thích hoàn hảo. Cảm ơn nhiều! (cũng cho lời giải thích hàng đầu, không biết điều đó) – brimborium
Bất kỳ lý do nào khiến bạn thêm 1? – Max
@Alex: Bởi vì (dưới cùng + 1-top) là chiều cao; nếu dưới cùng và trên cùng là chiều cao là một, không phải bằng không.Hiệu ứng ròng là làm tròn xuống trong trường hợp điểm giữa là n.5 pixel. –