2012-09-01 34 views
5

Trình duyệt Gecko và Webkit hỗ trợ hiển thị các hình chữ nhật ff fi fl ffl qua text-rendering: optimizeLegibility (phông chữ phải có chữ ghép, ví dụ: Calibri).Kích thước phông chữ có ảnh hưởng đến việc hiển thị các chữ ghép không?

MDN page cho biết, văn bản chỉ có kích thước 20px trở lên sẽ nhận được chữ ghép. Theo số my own research điều này không đúng:

  • Firefox sẽ hiển thị ligatures theo mặc định;
  • Chrome (& Safari) sẽ hiển thị ligatures nếu bạn chỉ định text-rendering: optimizeLegibility;
  • cả hai công cụ dường như không quan tâm đến kích thước phông chữ.

Tôi có thiếu gì đó ở đây không? Hoặc nó chỉ là một sai lầm (lỗi thời?) Trên trang MDN và chúng ta nên sửa nó?

[sửa] Đọc thêm: Smashing Magazine's “A Closer Look At Font Rendering”.

Trả lời

4

Firefox hỗ trợ tùy chọn browser.display.auto_quality_min_font_size cho phép bạn điều chỉnh giá trị mà nó sử dụng để quyết định có nên chọn đường dẫn hiển thị phông chữ của nó hay không. Tuy nhiên, phần duy nhất của mã mà điều này vẫn được vinh danh trong các phiên bản hiện tại của Firefox là trên Windows XP, nơi kích thước phông chữ nhỏ hoặc rõ ràng text-rendering: optimizeSpeed sẽ hiển thị bằng GDI thay vì Uniscribe.

Lưu ý rằng Thunderbird đặt giá trị của tùy chọn đó thành 0 vì lý do nào đó.

2

Thực ra, trang MDN cho biết văn bản 20px hoặc cao hơn sẽ nhận được chữ ghép theo cách, với tối ưu hóaĐộ tin cậy sẽ ghi đè điều đó. Thông thường, giá trị của nó là sử dụng chữ ghép hay không (và các yếu tố khác ảnh hưởng đến tính dễ đọc như kerning cụ thể giữa hai glyph cụ thể) thay đổi không chỉ với kích thước, mà từ phông chữ đến phông chữ. Nó sẽ không làm tôi ngạc nhiên khi thấy điều này thay đổi khá nhanh chóng với các phiên bản. Chắc chắn, công nghệ cơ bản không đứng yên.

2

Phân tích của bạn là chính xác. Một số quan sát bổ sung:

Dường như thuộc tính font-variant-ligatures được mô tả trong CSS3 Fonts chưa được triển khai. Thay vào đó, Firefox thực hiện các bất động sản ở mức độ thấp font-feature-settings, với tiền tố -moz-, vì vậy bạn thực sự có thể ngăn chặn Firefox từ ligature áp dụng bằng cách thiết lập

-moz-font-feature-settings: 'liga' 0 

trên một phần tử.

Nếu bạn muốn ngăn chặn chữ ghép trong các lần xuất hiện cụ thể, bạn có thể chèn ZERO-WIDTH NON-JOINER (ZWNJ) giữa các ký tự có thể được ghép nối, ví dụ: f‌i thay vì fi.

Các vấn đề liên quan