Firefox ve Opera'da Web Yazı Tipi Düzeltme ve Kenar Yumuşatma


112

Sitemde kullanılan özel yapım web yazı tipleri var. Render çıktımı biçimlendirmek için aşağıdaki kodu kullandım:

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

Bu, Safari ve Chrome'da iyi çalışır (kenarlar daha keskin ve çizgiler daha incedir). Firefox ve Opera'da aynı stili uygulamanın herhangi bir yolu var mı?


5
Bunu yapmayı bırakıp nedenini buradan okumak iyi bir fikir olabilir: usabilitypost.com/2012/11/05/stop-fixing-font-smoothing
fregante

20
^ Bu geniş bir genellemedir ve yazı tipi düzeltmeyi kullanmakta sorun yoktur. Sorun, tasarımcı davranışı değil, oluşturma sorunudur. Bir düzen tasarladığınızda ve yazı tipi, oluşturma motoru nedeniyle yarı kalın göründüğünde, düzeltilmesi gereken motordur, düzen değil.
Dylan

1
Tamamen geniş bir genelleme değil. Makale, alt piksel oluşturmanın öncelikle koyu arka planlar üzerindeki açık metinleri daha okunabilir (yani erişilebilir) hale getirmek için tasarlandığını ve bunun gibi geniş bir CSS tanımının body { -webkit-font-smoothing: antialiased; }çok zor olduğunu söylüyor .
Matt Scheurich

3
Açık arka plan üzerinde koyu olan web yazı tiplerim de "sahte kalın" oluyor. Her yerde "antialiased" diyorum.
Jason T Featheringham

5
Bir sayfanın nasıl görüntüleneceği, tüm tipografik özellikler dahil olmak üzere tasarımcıya bağlıdır. En geniş platform yelpazesinde kullanılabilirliği, tutarlılığı ve çekiciliği sağlamak onların sorumluluğundadır. CSS aracılığıyla yazı tipi yumuşatma özelliklerine erişim daha fazla kontrol sağlar. Her şey gibi, yanlış ellerde kötüye kullanılabilir. Ancak soruyu yanıtlamak yerine kişisel felsefeyi öğütlemek yardımcı olmuyor.
Beejor

Yanıtlar:


193

Opera, 15.0 Versiyonu -webkit-font-smoothing: antialiasedOpera üzerinde de çalıştığından beri Blink tarafından desteklenmektedir .

Firefox sonunda gri tonlamalı kenar yumuşatmayı etkinleştirmek için bir özellik ekledi. Uzun bir tartışmadan sonra , bu özelliğin yalnızca OS X'te çalıştığını belirten başka bir sözdizimiyle Sürüm 25'te mevcut olacak.

-moz-osx-font-smoothing: grayscale;

Bu, koyu arka planlardaki bulanık simge yazı tiplerini veya açık metni düzeltmelidir.

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

Her iki özelliği de işlemek için bir Sass karışımı içeren OSX'te yazı tipi oluşturma hakkındaki yazımı okuyabilirsiniz .


6
Neden sadece OSX ??
Yassir Ennazk

7
Windows ve Linux, yazı tipleri için OSX'ten farklı işleme algoritmaları kullanır.
Maximilian Hoffmann

15

Firefox böyle bir şeyi desteklemiyor.

Mozilla'nın referans sayfasında font-smoothCSS özelliği, fontlar oluşturulduğunda kenar yumuşatma uygulamasını kontrol ettiği için belirtir , ancak bu özellik bu belirtimden kaldırılmıştır ve şu anda standart yolda değildir.

Bu özellik yalnızca Webkit tarayıcılarında desteklenir.

Bir alternatif istiyorsanız, bunu kontrol edebilirsiniz:


2
Eh, sahip olduğum sorun, fontlarımın "kalın" görünmesi ve firefox ve operada şişirilmiş olması. İle -webkit-font-smoothing:antialiased;Safari ve Chrome'da düzeltebilirim. Yazı tiplerimi Firefox'ta biraz daha hafif hale getirmek için herhangi bir "hack" bulmayı çok isterim. Ona text-shadowsadece moz ile beyaz uygulamayı düşündüm, ancak yazı tipini daha açık hale getirecek bir "ek" metin gölgesi uygulamanın bir yolu yok.
matt

1
@matt Bu soruda bazı CSS önerilerini deneyebilirsiniz: stackoverflow.com/questions/761778/… Belki CSS alternatifleri bulabilirsiniz.
Jonathan Naguin

11

Vaka: Koyu arka planda pürüzlü web yazı tipine sahip açık metin Firefox (v35) / Windows
Örnek: Google Web Yazı Tipi Ruda

Şaşırtıcı çözüm -
uygulanan seçicilere aşağıdaki özelliği ekleme:

selector {
    text-shadow: 0 0 0;
}

Aslında sonuç ile aynı text-shadow: 0 0;, ancak ben açık bir şekilde bulanıklık yarıçapı ayarlamayı seviyorum.

Bu evrensel bir çözüm değildir, ancak bazı durumlarda yardımcı olabilir. Üstelik şimdiye kadar bu çözümün olumsuz performans etkilerini yaşamadım (ayrıca tam olarak test etmedim).


Yardımda hiçbir şey yapmaz
vsync

bu, yazı tipine bağlı olarak krom üzerinde daha kalın yazı tiplerine neden olur
Ben Sewards

1
@BenSewards Daha cesur yazı tipi oluşturma ile karşılaştığınız bir yazı tipi sağlar mısınız? Ya da belki bir CodePen? Şimdiden teşekkürler.
Volker E.

1
@VolkerE. harika çözüm için teşekkürler. Yapışkan Başlıktaki Kaynak Kodu Pro Yazı Tipi ile aynı can sıkıcı sorunu yaşıyorum. Yazı tipini kaydırdığımda çok küçük oluyor ve sizin metin gölgenizle yazı tipi herhangi bir sorun çıkarmıyor.
Evolutio

Mevcut kromda (58.0.3029.110) "düzgün" metin gerçekten korkunç görünüyor . ("jaggy" metni biraz daha iyi)
RecursiveExceptionException


5

Çözümü şu bağlantıyla buldum: http://pixelsvsbytes.com/blog/2013/02/nice-web-fonts-for-every-browser/

Adım adım yöntem:

  • yazı tipinizi bir WebFontGenerator'a gönderin ve zip dosyasını alın
  • Zip dosyasında TTF yazı tipini bulun
  • sonra, linux üzerinde bu komutu yapın (veya kurarak apt-get install ttfautohint):
    ttfautohint --strong-stem-width=g neosansstd-black.ttf neosansstd-black.changed.ttf
  • sonra, bir tane daha, WebFontGenerator'da yeni TTF dosyasını (neosansstd-black.changed.ttf) gönderin
  • tüm web yazı tiplerinizle mükemmel bir Zip elde edersiniz!

Umarım bu yardımcı olacak.


Css geçişleri sırasında yazı tipi titremesini düzeltmede harika bir iş çıkardı (tamamen kaldırılmamış olsa da). TTFAutohint seçeneğiyle FontSquirrel oluşturucuyu kullandım
Andrey

Fontie'yi WOFF, WOFF2, EOT ve SVG dosyalarımı Windows için autohint etkinleştirilmiş olarak yeniden oluşturmak için kullandım.
Dominique

4

... gövde etiketinde ve bunlar içerikten ve yazı tipinden genel olarak daha iyi görünüyor ...

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
Üzgünüm ... "reinschreiben" nedir? Çoğumuz Almanca konuşmuyoruz, bu yüzden gönderinizin tamamını İngilizce yapsanız iyi olur.
rayryeng

3
Oh lütfen, özür dilerim Google ile çevirmiştim ve bir şekilde yanlış kelimeyi
kaymıştan

3

Safari ve Chrome'da metin rengi koyu olduğunda text-strok css özelliği ile daha iyi sonuç aldım.

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

Soru Firefox ve Opera ile ilgili. yani bu cevabın soruyla ilgisi yok
vsync

-4

Ekleme

font-weight: normal;

@ Font-face yazı tiplerinize Firefox'taki kalın görünümü düzeltir.


7
font-weight(şaşırtıcı olmayan bir şekilde) yazı tipi düzgünleştirmeyi değil yazı tipi ağırlığını etkiler. @ Font-face bildirimlerine eklemek, bağlantılı font dosyası normal ağırlıklı font dosyası değilse kafa karışıklığına neden olur.
Mike Meyer

@MikeMeyer Aslında Aaron'un yorumuna katılıyorum. Bir yazı normal bir "hafif" font olur ise şunlardır: font-weight ekleme görünüyor karışıklığı eklemek, ancak yalnızca acemi geliştirici karıştırmamak gerekir. Deneyimlerimde normalin bir varsayılanını belirlemek aslında iyi bir uygulamadır. Bu durumda Normal, dahil edilen yazı tipi ve kullanılan karakterler için "normal" anlamına gelir ve yazı tipi yüzünün kendisi hakkında bilgi belirtmesi amaçlanmamıştır. Çoğu durumda (özellikle büyük platformlarda), yazı tipi stillerinde gördüğünüz tamamen tipik kötü mimariden kaynaklanan hata olasılığını azaltır.
dudewad

Aslında, yazı tipi yüzünün adı, varsayılan olarak yazı tipinin ağırlığını göstermelidir ...!
dudewad

@dudewad, aynı fikirde olmanız harika ve evet, bu iyi (kısaca ifade edilmiş olsa da) bir "profesyonel ipucu" hakkında font-weight. Mesele şu ki, OP sormuyordu font-weight- kenar yumuşatma hakkında soru soruyordu . Bu, tamamen farklı bir soru için doğru bir cevaptır.
Mike Meyer

@MikeMeyer tamamen haklısın. Bazen biraz kendimi kaptırıyorum. ;)
dudewad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.