Webfont Smoothing và Antialiasing trong Firefox và Opera


112

Tôi đã sử dụng phông chữ web tùy chỉnh trên trang web của mình. Để tạo kiểu cho đầu ra kết xuất của mình, tôi đã sử dụng mã sau:

//-webkit-text-stroke-width: .05px;
//-webkit-text-stroke-color: white;
-webkit-font-smoothing: antialiased;

Điều này hoạt động tốt trên Safari và Chrome (các cạnh sắc nét hơn và các đường mỏng hơn). Có cách nào thực hiện cùng một kiểu trên Firefox và Opera không?


5
Nó sẽ là một ý tưởng tốt để ngăn chặn làm điều đó và tìm hiểu tại sao ở đây: usabilitypost.com/2012/11/05/stop-fixing-font-smoothing
fregante

20
^ đây là một khái quát rộng và bạn có thể sử dụng tính năng làm mịn phông chữ. Vấn đề kết xuất mới là vấn đề, không phải hành vi của nhà thiết kế. Khi bạn thiết kế một bố cục và phông chữ xuất hiện nửa đậm do công cụ kết xuất thì đó là công cụ cần sửa, không phải bố cục.
Dylan

1
Nó không hoàn toàn là một khái quát rộng. Bài báo nói rằng kết xuất subpixel chủ yếu nhằm mục đích làm cho văn bản sáng trên nền tối dễ đọc hơn (tức là có thể truy cập được) và việc tạo ra một định nghĩa CSS rộng rãi như body { -webkit-font-smoothing: antialiased; }là quá nặng tay.
Matt Scheurich

3
Các phông chữ web tối trên nền sáng của tôi cũng bị "in đậm giả". Tôi nói "chống răng cưa" xung quanh.
Jason T Featheringham

5
Cách một trang hiển thị là tùy thuộc vào người thiết kế, bao gồm tất cả các thuộc tính kiểu chữ. Họ có trách nhiệm đảm bảo tính khả dụng, nhất quán và hấp dẫn trên nhiều nền tảng nhất. Quyền truy cập vào các thuộc tính làm mịn phông chữ thông qua CSS cho phép kiểm soát tốt hơn. Giống như bất cứ thứ gì, nó có thể bị lạm dụng vào tay kẻ xấu. Nhưng đưa ra triết lý cá nhân thay vì trả lời câu hỏi là không hữu ích.
Beejor

Câu trả lời:


193

Vì Opera được cung cấp bởi Blink vì Phiên bản 15.0 -webkit-font-smoothing: antialiasedcũng hoạt động trên Opera.

Firefox cuối cùng đã thêm một thuộc tính cho phép khử răng cưa màu xám. Sau một thời gian dài thảo luận, nó sẽ có sẵn trong Phiên bản 25 với một cú pháp khác, chỉ ra rằng thuộc tính này chỉ hoạt động trên OS X.

-moz-osx-font-smoothing: grayscale;

Điều này sẽ sửa chữa các phông chữ biểu tượng mờ hoặc văn bản sáng trên nền tối.

.font-smoothing {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

Bạn có thể đọc bài đăng của tôi về cách kết xuất phông chữ trên OSX bao gồm một hỗn hợp Sass để xử lý cả hai thuộc tính.


6
Tại sao chỉ có OSX ??
Yassir Ennazk

7
Windows và Linux sử dụng các thuật toán kết xuất phông chữ khác với OSX.
Maximilian Hoffmann

15

Chà, Firefox không hỗ trợ những thứ như vậy.

Trong trang tham chiếu từ Mozilla chỉ định font-smoothlà thuộc tính CSS kiểm soát việc áp dụng khử răng cưa khi các phông chữ được hiển thị, nhưng thuộc tính này đã bị xóa khỏi thông số kỹ thuật này và hiện không có trên đường chuẩn.

Thuộc tính này chỉ được hỗ trợ trong trình duyệt Webkit.

Nếu bạn muốn một sự thay thế, bạn có thể kiểm tra điều này:


2
Chà, vấn đề tôi gặp phải là phông chữ của tôi trông "đậm" và cồng kềnh trong firefox và opera. Với -webkit-font-smoothing:antialiased;tôi, tôi có thể sửa nó trong Safari và Chrome. Tôi muốn tìm bất kỳ "hack" nào để làm cho phông chữ của tôi nhẹ hơn một chút trong Firefox. Tôi chỉ nghĩ đến việc áp dụng màu trắng text-shadowcho nó trong moz nhưng không có cách nào để áp dụng một bóng chữ "chèn" để làm cho phông chữ nhẹ hơn.
matt

1
@matt Bạn có thể thử một số lời khuyên CSS trong câu hỏi này: stackoverflow.com/questions/761778/… Có thể bạn tìm thấy một số CSS thay thế.
Jonathan Naguin

11

Trường hợp: Văn bản nhạt với phông chữ web lởm chởm trên nền tối Firefox (v35) / Windows
Ví dụ: Google Web Font Ruda

Giải pháp đáng ngạc nhiên -
thêm thuộc tính sau vào các bộ chọn được áp dụng:

selector {
    text-shadow: 0 0 0;
}

Trên thực tế, kết quả cũng giống như vậy text-shadow: 0 0;, nhưng tôi thích đặt bán kính mờ một cách rõ ràng.

Nó không phải là một giải pháp phổ biến, nhưng có thể hữu ích trong một số trường hợp. Hơn nữa, tôi chưa trải nghiệm (cũng chưa được kiểm tra kỹ lưỡng) các tác động tiêu cực đến hiệu suất của giải pháp này cho đến nay.


Không giúp được gì
vsync

điều này sẽ gây phông chữ táo bạo trên chrome dựa trên font
Bến Sewards

1
@BenSewards Bạn có cung cấp một phông chữ mà bạn gặp phải việc hiển thị phông chữ đậm hơn không? Hoặc thậm chí có thể là CodePen? Cảm ơn trước.
Volker E.

1
@VolkerE. cảm ơn vì giải pháp tuyệt vời. Tôi có cùng một vấn đề khó chịu với Phông chữ mã nguồn Pro trong Tiêu đề dính. Khi tôi cuộn, phông chữ rất nhỏ và với bóng chữ của bạn, phông chữ không gây ra bất kỳ vấn đề gì.
Evolutio

Trên chrome hiện tại (58.0.3029.110), văn bản "mượt mà" thực sự trông rất kinh khủng. (văn bản "jaggy" có phần tốt hơn)
RecursiveExceptionException

7

Sau khi gặp sự cố, tôi phát hiện ra rằng tệp WOFF của mình không được thực hiện đúng cách, tôi đã gửi một TTF mới đến FontSquirrel để cung cấp cho tôi một WOFF thích hợp hoạt động trơn tru trong Firefox mà không cần thêm bất kỳ CSS bổ sung nào vào đó.


nó có trong cửa sổ không?
Vignesh

5

Tôi đã tìm thấy giải pháp bằng liên kết này: http://pixelsvsbytes.com/blog/2013/02/nice-web-fonts-for-every-browser/

Phương pháp từng bước:

  • gửi phông chữ của bạn tới WebFontGenerator và lấy mã zip
  • tìm phông chữ TTF trên tệp Zip
  • sau đó, trên linux, thực hiện lệnh này (hoặc cài đặt bằng cách apt-get install ttfautohint):
    ttfautohint --strong-stem-width=g neosansstd-black.ttf neosansstd-black.changed.ttf
  • sau đó, một lần nữa, gửi tệp TTF mới (neosansstd-black.changed.ttf) trên WebFontGenerator
  • bạn sẽ có được một Zip hoàn hảo với tất cả các webfonts!

Hy vọng điều này có thể giúp cho bạn.


Đã thực hiện một công việc tuyệt vời trong việc sửa lỗi phông chữ trong quá trình chuyển đổi css (mặc dù không loại bỏ nó hoàn toàn). Tôi đã sử dụng trình tạo FontSquirrel với tùy chọn TTFAutohint
Andrey

Tôi đã sử dụng Fontie để tạo lại các tệp WOFF, WOFF2, EOT và SVG của mình với tính năng tự động ẩn cho Windows được bật.
Dominique

4

... trong thẻ body và những thứ này từ nội dung và kiểu chữ nhìn chung trông đẹp hơn ...

body, html {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
text-rendering: optimizeLegibility;
text-rendering: geometricPrecision;
font-smooth: always;

font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
-webkit-font-smoothing: antialiased;
-webkit-font-smoothing: subpixel-antialiased;
}


#content {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;

}

2
Tôi xin lỗi ... "reinschreiben" là gì? Hầu hết chúng ta không nói được tiếng Đức, vì vậy sẽ rất tuyệt nếu bạn viết toàn bộ bài đăng của mình bằng tiếng Anh.
rayryeng

3
Oh xin vui lòng, tôi xin lỗi vì đã dịch với Google và bằng cách nào đó từ sai từ trượt :)
user3634787

3

Khi màu văn bản tối, trong Safari và Chrome, tôi có kết quả tốt hơn với thuộc tính css text-stroke.

-webkit-text-stroke: 0.5px #000;

Câu hỏi là về Firefox và Opera. vì vậy câu trả lời này không liên quan gì đến câu hỏi
vsync

-4

Thêm

font-weight: normal;

Đối với phông chữ @ font-face của bạn sẽ sửa lỗi xuất hiện đậm trong Firefox.


7
font-weight(không có gì đáng ngạc nhiên) ảnh hưởng đến độ đậm của phông chữ, không ảnh hưởng đến việc làm mịn phông chữ. Việc thêm nó vào các khai báo @ font-face sẽ gây nhầm lẫn nếu tệp phông chữ được liên kết không phải là tệp phông chữ có trọng lượng bình thường.
Mike Meyer

@MikeMeyer Thực ra tôi đồng ý với nhận xét của Aaron. Thêm font-weight: bình thường đối với một phông chữ bao gồm một phông chữ "nhẹ" sẽ có vẻ gây thêm sự nhầm lẫn, nhưng nó chỉ gây nhầm lẫn cho các nhà phát triển mới làm quen. Theo kinh nghiệm của tôi, việc chỉ định giá trị mặc định là bình thường. Bình thường trong trường hợp này đề cập đến "bình thường" cho phông chữ được bao gồm và các ký tự đang được sử dụng, và không nhằm chỉ định thông tin về chính mặt phông chữ. Trong nhiều trường hợp, nó sẽ (đặc biệt là trên các nền tảng lớn) giảm khả năng xuất hiện lỗi từ kiến ​​trúc xấu quá điển hình mà bạn thấy xung quanh các kiểu phông chữ.
dudewad

Trên thực tế, bản thân tên của mặt phông chữ nên biểu thị độ nặng của phông chữ theo mặc định ...!
dudewad

@dudewad thật tuyệt khi bạn đồng ý, và vâng, đó là một “mẹo nhỏ” khá (mặc dù khá ngắn gọn) font-weight. Điều đó là, OP đã không hỏi về font-weight— cô ấy đang hỏi về khử răng cưa . Đây là một câu trả lời chính xác cho một câu hỏi hoàn toàn khác.
Mike Meyer

@MikeMeyer bạn hoàn toàn đúng. Đôi khi tôi hơi mang đi một chút. ;)
dudewad
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.