Có bất kỳ phông chữ nào làm trơn tru trong Google Chrome không?


141

Tôi đang sử dụng google webfont và chúng ổn ở kích thước phông chữ siêu lớn, nhưng ở 18px, chúng trông thật tệ. Tôi đã đọc ở đây và có những giải pháp để làm mịn phông chữ, nhưng tôi không tìm thấy nơi nào giải thích rõ ràng và một vài đoạn tôi đã tìm thấy hoàn toàn không hoạt động.

Tôi h4trông thật tệ trong hầu hết mọi trình duyệt, nhưng Chrome là thứ tồi tệ nhất. Trong Chrome, khá nhiều phông chữ của tôi trông rất tệ.

ai đó có thể chỉ cho tôi phương hướng đúng không? Có lẽ bạn biết về một tài nguyên giải thích điều này rõ ràng? Cảm ơn!

VÍ DỤ SCREENSHOT # 1

Ảnh chụp màn hình này hiển thị trang chủ của https://www.dartlang.org/ , ngôn ngữ lập trình được tạo bởi Google (vì vậy chúng tôi có thể ngụ ý rằng trang web này cũng được Google xây dựng) và sử dụng Google Webfonts.

Ảnh chụp màn hình hiển thị Google Chrome ở bên trái, Firefox / Internet Explorer ở bên phải.:

google chrome bên trái, firefox / internet explorer bên phải

VÍ DỤ SCREENSHOT # 2

Ảnh chụp màn hình này hiển thị trang thông tin sản phẩm trên Adobe.com, sử dụng webfont do Typekit cung cấp. Adobe & Typekit là các chuyên gia khi nói đến phông chữ.

Ảnh chụp màn hình hiển thị Google Chrome ở bên phải, Firefox / Internet Explorer ở bên trái:

google chrome bên trái, firefox / internet explorer bên phải


chúng có vẻ tốt với tôi trong chrome và firefox ... bạn có thể thêm một màn hình in không?
JFK

Ngoài ra trên iPhone / iOS trông chúng rất tốt.
insertusernamehere

Bạn đang sử dụng Windows? Nếu vậy, công cụ làm mịn ClearType của HĐH có thể là nguyên nhân. Tôi đã dùng thử trang đó trong Mac OS, Ubuntu, Fedora và Chrome OS ngoài Windows; cái sau là cái duy nhất không hiển thị đúng, vì điều tôi nghi ngờ là công cụ ClearType.
Jules

vâng, đó là cửa sổ. Bạn có biết những gì tôi có thể làm về nó?
imakeitpretty

vừa phát hiện ra tính năng hữu ích này: chrome: // flags / # lcd-text-aa - kích hoạt nó và nó làm mịn văn bản cho bạn
cinek

Câu trả lời:


162

Tình trạng sự cố, tháng 6 năm 2014: Đã sửa lỗi với Chrome 37

Cuối cùng, nhóm Chrome sẽ phát hành bản sửa lỗi cho vấn đề này với Chrome 37 sẽ được phát hành ra công chúng vào tháng 7 năm 2014. Xem ví dụ so sánh Chrome 35 ổn định hiện tại và Chrome 37 mới nhất (xem trước phát triển sớm) tại đây:

nhập mô tả hình ảnh ở đây

Tình trạng của vấn đề, tháng 12 năm 2013

1.) Có NO giải pháp thích hợp khi tải phông chữ qua @import, <link href=hay Google webfont.js. Vấn đề là Chrome chỉ yêu cầu các tệp .woff từ API của Google sẽ hiển thị khủng khiếp. Đáng ngạc nhiên là tất cả các loại tập tin phông chữ khác hiển thị đẹp. Tuy nhiên, có một số thủ thuật CSS sẽ "làm mịn" phông chữ được hiển thị một chút, bạn sẽ tìm thấy cách giải quyết sâu hơn trong câu trả lời này.

2.) Có một giải pháp thực sự cho vấn đề này khi tự lưu trữ các phông chữ, lần đầu tiên được đăng bởi Jaime Fernandez trong một câu trả lời khác trên trang Stackoverflow này, khắc phục vấn đề này bằng cách tải phông chữ web theo thứ tự đặc biệt. Tôi sẽ cảm thấy tồi tệ khi chỉ đơn giản là sao chép câu trả lời tuyệt vời của anh ấy, vì vậy xin vui lòng xem ở đó. Ngoài ra còn có một giải pháp (chưa được chứng minh) khuyến nghị chỉ sử dụng phông chữ TTF / OTF vì chúng hiện được hỗ trợ bởi hầu hết các trình duyệt.

3.) Nhóm nhà phát triển Google Chrome hoạt động về vấn đề đó. Vì đã có một vài thay đổi lớn trong công cụ kết xuất, rõ ràng có điều gì đó đang diễn ra.

Tôi đã viết một bài đăng blog lớn về vấn đề đó, xin vui lòng xem: Cách khắc phục kết xuất phông chữ xấu xí trong Google Chrome

Ví dụ sinh sản

Xem ví dụ từ câu hỏi ban đầu trông như thế nào hôm nay, trong Chrome 29:

VÍ DỤ TÍCH CỰC:

Trái: Firefox 23, phải: Chrome 29

nhập mô tả hình ảnh ở đây

VÍ DỤ TÍCH CỰC:

Hàng đầu: Firefox 23, dưới cùng: Chrome 29

nhập mô tả hình ảnh ở đây

VÍ DỤ NEGECT: Chrome 30

nhập mô tả hình ảnh ở đây

VÍ DỤ NEGECT: Chrome 29

nhập mô tả hình ảnh ở đây

Giải pháp

Sửa ảnh chụp màn hình ở trên bằng -webkit-text-Stro:

nhập mô tả hình ảnh ở đây

Hàng đầu tiên là mặc định, thứ hai có:

-webkit-text-stroke: 0.3px;

Hàng thứ ba có:

-webkit-text-stroke: 0.6px;

Vì vậy, cách để sửa các phông chữ đó chỉ đơn giản là cung cấp cho chúng

-webkit-text-stroke: 0.Xpx;

hoặc cú pháp RGBa (bởi nezroy, được tìm thấy trong các bình luận! Cảm ơn!)

-webkit-text-stroke: 1px rgba(0,0,0,0.1)

Ngoài ra còn có một khả năng lỗi thời : Cung cấp cho văn bản một bóng đơn giản (giả):

text-shadow: #fff 0px 1px 1px;

Giải pháp RGBa (được tìm thấy trong blog của Jasper Espejo):

text-shadow: 0 0 1px rgba(51,51,51,0.2);

Tôi đã viết một bài blog về điều này:

Nếu bạn muốn được cập nhật về vấn đề này, hãy xem bài đăng trên blog: Cách khắc phục kết xuất phông chữ xấu xí trong Google Chrome . Tôi sẽ đăng tin nếu có tin tức về điều này.

Câu trả lời ban đầu của tôi:

Đây là một lỗi lớn trong Google Chrome và Nhóm Google Chrome biết về điều này, xem báo cáo lỗi chính thức tại đây . Hiện tại, vào tháng 5 năm 2013, thậm chí 11 tháng sau khi lỗi được báo cáo, nó vẫn chưa được giải quyết. Một điều kỳ lạ là trình duyệt duy nhất làm rối tung Google Webfonts là trình duyệt Chrome của riêng Google (!). Nhưng có một cách giải quyết đơn giản sẽ khắc phục vấn đề, vui lòng xem bên dưới để biết giải pháp.

TUYÊN BỐ TỪ NHÓM PHÁT TRIỂN CHROME GOOGLE, tháng 5 năm 2013

Tuyên bố chính thức trong các bình luận báo cáo lỗi:

Kết xuất phông chữ Windows của chúng tôi đang tích cực làm việc. ... Chúng tôi hy vọng sẽ có một cái gì đó trong một hoặc hai cột mốc mà các nhà phát triển có thể bắt đầu chơi. Làm thế nào nhanh đến mức ổn định, như mọi khi, tất cả về tốc độ chúng ta có thể thoát ra và đốt cháy mọi hồi quy.


1
Vấn đề không nằm ở tất cả các trình duyệt chạy trên Windows, đó chỉ là trong trường hợp của Chrome. Firefox, Opera và IE có tính năng khử răng cưa thích hợp cho các phông chữ. Mặc dù, nó có thể được cố định trong chrome bằng cách sử dụng thuộc -webkit-font-smoothingtính. Xem câu trả lời của tôi dưới đây.
Kushagra

1
Đối với văn bản màu đen, tôi đã sử dụng text-shadow: #333 0px 0px 1px;. Cảm ơn rất nhiều cho tiền boa.
Yoone

6
Có thể nó bị mất trong bản dịch nhưng -webkit-text-Stro chỉ hoạt động khi bạn sử dụng một màu alpha của phông chữ. Vì vậy, đối với một phông chữ màu đen, tôi sử dụng một cái gì đó như "-webkit-text-Stro: 1px rgba (0,0,0,0.1)".
nezroy

Tôi đã nhận thấy rằng Chrome 30 trên Mac hiện đang có cùng tính năng khử răng cưa.
jwadsack

1
Trong vé chính thức trên bảng chrome cho vấn đề này, code.google.com/p/chromium/issues/detail?id=137692 dường như được dùng để sửa lỗi cho v37, nếu tôi hoàn tác chính xác bài đăng cuối cùng trong chuỗi .
Gruber

46

Tôi đã có cùng một vấn đề, và tôi đã tìm thấy giải pháp trong bài đăng này của Sam Goddard ,

Các giải pháp nếu để xác định cuộc gọi đến phông chữ hai lần . Đầu tiên, như được khuyến nghị, nên được sử dụng cho tất cả các trình duyệt và sau một cuộc gọi cụ thể chỉ dành cho Chrome với một truy vấn phương tiện đặc biệt:

@font-face {
  font-family: 'chunk-webfont';
  src: url('../../includes/fonts/chunk-webfont.eot');
  src: url('../../includes/fonts/chunk-webfont.eot?#iefix') format('eot'),
  url('../../includes/fonts/chunk-webfont.woff') format('woff'),
  url('../../includes/fonts/chunk-webfont.ttf') format('truetype'),
  url('../../includes/fonts/chunk-webfont.svg') format('svg');
  font-weight: normal;
  font-style: normal;
}

@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'chunk-webfont';
    src: url('../../includes/fonts/chunk-webfont.svg') format('svg');
  }
}

nhập mô tả hình ảnh ở đây

Với phương pháp này, phông chữ sẽ hiển thị tốt trong tất cả các trình duyệt. Điểm trừ duy nhất mà tôi tìm thấy là tệp phông chữ cũng được tải xuống hai lần.

Bạn có thể tìm thấy một phiên bản tiếng Tây Ban Nha của bài viết này trong trang của tôi


6
Đây thực sự là câu trả lời chính xác, tuy nhiên nó có thể được đơn giản hóa. Chỉ cần liệt kê phiên bản SVG FIRST trong danh sách các phông chữ cũng giải quyết được vấn đề!
jduncanator

2
Câu trả lời này cho - cho đến nay - kết quả tốt nhất. Phông chữ SVG trông x100 tốt hơn so với hack -webkit-text-Stroke. Nhược điểm chính là kích thước phông chữ của phiên bản SVG; nó thường lớn hơn nhiều :-( Google thực sự cần phải có được
càng sớm càng tốt

Tôi hoàn toàn đồng ý ! Tôi sẽ liên kết đến câu trả lời này từ trong câu trả lời của tôi.
Sliq

@jduncanator Liệt kê SVG trước tiên là không nên - điều này có nghĩa là phông chữ SVG sẽ được tải bởi mọi trình duyệt hỗ trợ nó, trong khi bạn chỉ cần nó cho Chrome trên Windows.
RoelN

@jduncanator Hai thủ phạm chính không hỗ trợ gợi ý và kích thước tệp lớn (nén gzip cho phông chữ không được bật theo mặc định trên nhiều máy chủ).
RoelN

22

Chrome không hiển thị các phông chữ như Firefox hoặc bất kỳ trình duyệt nào khác. Đây thường là sự cố trong Chrome chỉ chạy trên Windows. Nếu bạn muốn làm cho phông chữ mượt mà, hãy sử dụng thuộc -webkit-font-smoothingtính trên h4các thẻ yer như thế này.

h4 {
    -webkit-font-smoothing: antialiased;
}

Bạn cũng có thể sử dụng subpixel-antialiased, điều này sẽ cung cấp cho bạn loại làm mịn khác nhau (làm cho văn bản hơi mờ / bóng). Tuy nhiên, bạn sẽ cần một phiên bản hàng đêm để xem các hiệu ứng. Bạn có thể tìm hiểu thêm về làm mịn phông chữ ở đây .


11
Tôi có phiên bản Chrome mới nhất vào ngày 8 tháng 8 năm 2013 và trang này ở đây cho thấy không có sự khác biệt giữa chúng maxvoltar.com/sandbox/fontsmoothing
thednp

4
Điều này không hoạt động (thử nghiệm trên windows). Vì mac làm điều này dù sao tôi cũng đánh dấu để không cho mọi người sử dụng nó.
KryptoniteDove

4
Điều này không hoạt động. Tôi mới dùng thử trên Windows 8. Với bất kỳ phiên bản Chrome mới nhất nào (kể từ ngày 10/8/2013).
jay_t55

3
Trên Mac Chrome và Safari, DOES này hoạt động rất đáng để thêm vào. Apple.com thậm chí sử dụng nó trong biểu định kiểu base.css của họ:body { font: 12px/18px "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif; -webkit-font-smoothing: antialiased; }
Justin

1
tương đương firefox là -moz-osx-font-smoothing: grayscale;
Jeff Walters

14

Ok bạn có thể sử dụng đơn giản

-webkit-text-stroke-width: .7px;
-webkit-text-stroke-color: #34343b;
-webkit-font-smoothing:antialiased;

Hãy chắc chắn rằng màu văn bản của bạn và chiều rộng nét chữ trên phải giống tôi và đó là màu đó.


làm mịn phông chữ không còn làm bất cứ điều gì ngoài nét văn bản hoạt động và có thể giúp đỡ trên một số phông chữ. Tôi dường như nhận được kết quả tốt nhất với đột quỵ 0,5px và rgba (0,0,0,0,5).
Rêu

tương đương firefox là -moz-osx-font-smoothing: grayscale;
Jeff Walters

điều này thật tuyệt ... chỉ cần thay thế # 34343b bằng kế thừa ..;)
SEO Sagive

9

Tôi sẽ nói trước tất cả rằng điều này sẽ không luôn luôn hoạt động , tôi đã thử nghiệm điều này với sans-serifphông chữ và phông chữ bên ngoài nhưopen sans

Đôi khi, khi bạn sử dụng phông chữ lớn, hãy thử xấp xỉ font-size:49pxvà trên

cỡ chữ: 48px

Đây là văn bản tiêu đề có kích thước 48px ( font-size:48px;trong phần tử có chứa văn bản).

Nhưng, nếu bạn tăng 48px lên font-size:49px;(và 50px, 60px, 80px, v.v ...), điều gì đó thú vị sẽ xảy ra

cỡ chữ: 49px

Các văn bản tự động trở nên trơn tru, và có vẻ thực sự tốt

Đối với một khía cạnh khác ...

Nếu bạn đang tìm kiếm các phông chữ nhỏ, bạn có thể thử cách này, nhưng không hiệu quả lắm.

Đối với cha mẹ của văn bản, chỉ cần áp dụng thuộc tính css tiếp theo: -webkit-backface-visibility: hidden;

Bạn có thể biến đổi một cái gì đó như thế này:

-webkit-backface-mức độ hiển thị: hiển thị;

Về điều này:

-webkit-backface-mức độ: ẩn;

(phông chữ là Kreon)

Hãy xem xét rằng khi bạn không đặt tài sản đó, -webkit-backface-visibility: visible;là thừa kế

Nhưng hãy cẩn thận , thực tế đó sẽ không cho kết quả tốt, nếu bạn nhìn kỹ, Chrome chỉ làm cho văn bản trông hơi mờ.

Một sự thật thú vị khác:

-webkit-backface-visibility: hidden;cũng sẽ hoạt động khi bạn chuyển đổi một văn bản trong Chrome (với thuộc -webkit-transformtính, bao gồm xoay, nghiêng, v.v.)

Không có

Không có -webkit-backface-visibility: hidden;

Với

Với -webkit-backface-visibility: hidden;

Chà, tôi không biết tại sao cách làm đó lại hiệu quả, nhưng nó làm được cho tôi. Xin lỗi vì tiếng Anh kỳ lạ của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.