Home > typography > @font-face gotchas

@font-face gotchas

Over the past few months, I've collected a few worthwhile notes on @font-face that are worth reading over if you geek out about this stuff…

  • in Webkit (Chrome/Safari), applying font-weight:bold to faux-bold some @font-face'd text will not succeed. Same applies for font-style:italic. You can fix by adding the following to your @font-face declaration: (via doctype, crbug/31883, crbug/35739webk.it/34147)
      font-weight:normal;
      font-style:normal;
      font-variant:normal;
      /* these values are defaults in FF/Opera/IE but not webkit */
  • FF/Linux cannot serve webfonts from the file:// protocol. (Also, a tome on type quality with linux from Evan Martin)
  • TrueType format renders with a better quality than Opentype CFF. (sez Typekit) (fontsquirrel default)
  • In IE6-8, using createStyleSheet and then setting styleElem.styleSheet.cssText to a text value that includes a @font-face declaration going into will crash IE6-8. (src)
  • font-size-adjust (only supported in Firefox) normalizes x-height and may improve the FOUT.
  • text-transform doesn't play well with @font-face in current implementations. (via snook & Gary Jones)
  • @font-face doesnt play nice with css transitions. (via ethan marcotte)
  • IE6 under High Security settings will pop a security dialog when a site tries to use @font-face. (via Wouter Bos)
  • There have been reports that when a font is segmented into multiple files, a css text-shadow can overlap in a weird way. (pics plz? :)
  • Aaron James Young dug into @font-face on obscure linux-only browsers.
  • If a @font-face declaration is within a media query @media screen { ..., it will fail in Firefox. (Thx Ben Kulbertis) http://bugzil.la/567573
  • Hosting the fonts on a different domain? Firefox requires some extra effort; you'll need to add the Access-Control-Allow-Origin header, whitelisting the domain you're pulling the asset from. Example .htaccess config here. Alternatively, you can use the base64 encoding in CSS (create it with the fontsquirrel generator) to avoid setting headers. details here
  • If you're using @font-face will fillText() with <canvas>, then you might notice fillText NEEDS the font resource to load completely before you use it. And that's up to you to manage. crbug.com/32879
  • SVG Fonts - Currently SVG is the only way to get webfonts working on iPhone and iPad. It is the most rudimentary format for fonts on the web.
    • SVG Fonts lack kerning and other complementary information
    • SVGz is a format that bakes compression right in and will save you bandwidth overhead. But you'll need to add this to to your .htaccess for this benefit. AddType image/svg+xml svg svgz AddEncoding gzip svgz (via @fontsquirrel)
    • SVG fonts don't work with a cache manifest. Due to the manifest treating # as comments and Mobile Safari requiring the font ID reference in the URL. [Unverified] (via Tristan Dunn)
    • Using text-overflow: ellipsis; turned the contents into only "…" and nothing else. (via Tristan Dunn)
    • Letter-spacing css doesnt appear to work with SVG fonts.
  • IIS Needs some custom mimetype configuration for serving webfonts. To enable, go to: Default Web Site > Properties > HTTP Headers > File Types > New Type…
    • .otf : font/otf
    • .svg : image/svg+xml

    (thx ProtectedVoid & Tom Nelson) — Test page

  • "Although the practice is not well-loved by typographers, bold faces are often synthesized by user agents for faces that lack actual bold face" from the w3c fonts spec. What this means is, if you have a font you apply to your whole site, but it encounters elements that are set to font-weight: bold;, say.. <h2>'s or <strong>.. the browser will fake a bold and it might not look so hot.

@font-face links that might have sneaked past you

And.. regarding @font-face syntax

I now recommend the bulletproof smiley variation over the original bulletproof syntax.

@font-face {
  font-family: 'Graublau Web';
  src: url('GraublauWeb.eot');
  src: local('?'),
         url('GraublauWeb.woff') format('woff'), url('GraublauWeb.ttf') format('truetype');
}

From the bulletproof post:

Yes, it's a smiley face. The OpenType spec indicates any two-byte unicode characters won't work in a font name on Mac at all, so that lessens the likelihood that someone actually released a font with such a name.

There are a few reasons why smiley is a better solution:

  • Webkit+Font Management software can mess up local references, like turning glyphs into A blocks.  (crbug.com/33173)
  • On OS X, Font Management software may alter system settings to show a dialog when trying to access a local() font that's accessible outside of Library/Fonts. More detail on my bulletproof post. (crbug.com/29729) Font Explorer X is also known to mess up other stuff in Firefox: bugzil.la/531771
  • Although it's unlikely, you could reference a local() font which is completely different than what you think it is. (Typophile post on different fonts, same name) At the very least its a risk, and you're ceding control of the type to both the browser and host machine. This risk may not be worth the benefit of avoiding the font download.

These are all pretty edge case issues, but it's worth considering. FontSquirrel has already made the smiley syntax the new default in the Generator, and you should use it going forward as well.

2010.05.10: Added IE6 security issue from Wouter.

2010.05.13: Added segmented font/text-shadow issue.

2010.05.17: Link to linux @font-face research

2010.05.22: Media Queries firefox failure added.

2010.05.29: Cross-domain tricks added. SVGz trick added

2010.07.06: Added a bunch around SVG fonts.

2010.12.19: A note about canvas's fillText with @font-face.

Take a look at some of my other (recently updated) webfont stuff:

Paul Irish typography

  1. May 5th, 2010 at 15:20 #1

    Rad post/reference! Thanks for putting this together, Paul!!

  2. luis
    May 5th, 2010 at 15:28 #2

    Excellent, thank you!

  3. May 5th, 2010 at 15:59 #3

    I didn't know about the smileyface. Thanks :)

  4. May 5th, 2010 at 17:54 #4

    You may already know this? if not you you might want to test and add my recent font-face discovery:

    I noticed that in IE 7+ you get can get better font aliasing of @font-face typefaces sometimes by disabling clear type (depends on the font, its size and its weight I think). From what I understand the simplest way to do that is to apply a filter to the body element like so:

    body {
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
    filter:progid:DXImageTransform.Microsoft.Alpha(opacity=99);
    }

    This is applying a pretty much non-noticeable opacity but doing so disabled the browser clear-type and reverting the default OS aliasing (not sure why they are different but they are)

    If for some reason you want the clear-type back on individual elements simple add filter:none; for example:

    h1.foo { filter: none; }

    I'm not sure of performance issues with this, I imagine if you have heavy JS going on it could be impacted. I'd also recommend putting in a conditional stylesheet.

  5. Aaron Mc Adam
    May 5th, 2010 at 21:42 #5

    awesome stuff, thanks for this. Read into it again last week, mainly Snook's awesome post on it. I wasted too much time messing with fonts instead of getting backend stuff done. ah well! :D

  6. May 6th, 2010 at 02:37 #6

    Very detailed research, as always.

    On a side note: your site lags on Linux+Firefox because of the huge background canvas drawing. Scrolling is often painful.

  7. May 6th, 2010 at 09:06 #7

    I'm doing a lot with @font-face now, and your posts have been a great reference. Thanks!

  8. May 6th, 2010 at 13:11 #8

    Great roundup as usual Paul. I've definitely been running into the "A" blocks in Chrome on sites not using the bulletproof smiley syntax.

    I'm also starting to wonder how we're going to navigate things when IE ships support for WOFF. How will we make sure that IE loads the WOFF and not the EOT? Will it matter? In any case, it'll be a good problem to have to solve. Here's hoping it actually happens in IE9…

  9. May 7th, 2010 at 01:41 #9

    Nice list, thanks.

    I miss one 'gotcha': Although IE6 is not that important anymore, it has some serious issues with @font-face when the security is set high. The IE6-user will see a security warning popup on every page on the website.

  10. May 8th, 2010 at 13:57 #10

    Hey Paul. Great post. Don't know how you keep track of it all.
    Glad you finally came around to the "unlikely fontname" solution with smiley face.
    I knew it was just a matter of time. :-)

    Rich

  11. May 10th, 2010 at 16:10 #11

    @Richard, :) indeed. I still think the duplicate name thing is super edge case, but the font management woes were just too significant. Mo' Bulletproofer ftw.

    @Wouter, whoa. had no idea. I added it here, thanks!

    @Matt Wiebe, Aye. I hope msft pays attention to this syntax and makes it grab the woff if available. No guarantees.

    @Paul: Yah i should post about that cleartype hack and the text-shadow approach. Good call.

  12. May 11th, 2010 at 11:16 #12

    >I still think the duplicate name thing is super edge case, but the font
    >management woes were just too significant. Mo' Bulletproofer ftw.
    Bottom line: except as a hack for preventing unnecessary http requests by IE, the local() descriptor isn't very useful because, in the absence of a unique font identifier, the only thing you can absolutely trust is what's on your web server. All these bugs crawl out of the same crack.

    Want to have some fun? Take an odd-looking font and rename it "inherit". Then install it. After that, it will just be a matter of time before it pops up on one web page or another as you browse.
    User agents have not been careful about distinguishing between the fallback font-family names that are keywords and therefore must not be in quotations, and fonts named "serif, sans-serif, cursive" etc. that must be because their names match a keyword font-family.
    Oops!

  13. May 12th, 2010 at 18:25 #13

    love the smiley; I'm using on my blog. FYI – possibly the best open type on the web for @font-face : http://www.theleagueofmoveabletype.com/

  14. May 19th, 2010 at 11:10 #14

    Hi Paul,

    I’ve used the Font Squirrel generator today (with the default settings) and implemented it in my website:
    http://preview5.mcw.nl/

    At first it seems to work fine. Firefox renders the text as it should. Internet Explorer sometimes renders the text correctly but sometimes it doesn’t. After a refresh in IE the text is rendered as it should. Can you indicate if this is a known problem, if I’m doing something wrong or maybe point out the problem and a possible workaround?

    Thanks for your reply.

    Martijn van Mechelen

  15. May 22nd, 2010 at 09:37 #15

    Something important I just found after hours of slaving that is really important:

    @font-face declarations do not work in Firefox or IE when they are wrapped in a @media declaration. They do however work in webkit based browsers.

    I spent hours trying to figure this out and finally found a thread on Stack Overflow where someone discovered this. Moving the @font-face declaration out of the @media section seems to work just fine. I hope this makes the list, it would have saved me and I'm sure countless others headaches.

  16. May 22nd, 2010 at 10:01 #16

    @Ben Kulbertis
    Man that's a great one, thanks Ben. Can someone file that as a bug on the mozilla bugzilla?

  17. May 22nd, 2010 at 12:12 #17

    @Paul Irish
    I will get on that, thanks for the mention by the way!

  18. Ethan Hunt
    May 24th, 2010 at 06:04 #18

    Getting each browser AND its "font system" to all work together nicely? I don't want to even think about it since fonts always seem to be the "doesn't work so well cross platform even though we've had twenty years of this". Took me a bit to find since it looks like the OSX Chromium nightlies still suffer from this.

    Amazing resource and very concisely presented.

    Thanks

  19. May 25th, 2010 at 23:06 #19

    @Paul Irish
    Just wanted to do a follow-up on the bugzilla report I filed for the font-face in a media query failure in Firefox ( https://bugzilla.mozilla.org/show_bug.cgi?id=567573 ). It seems that the use of at-rules inside a @media rules are invalid in CSS2.1 which is why Firefox ignores it. It seems to me and some of the other posters on the bug that this is a good idea so it may be changed in the future. Here is where it says on w3.org that is invalid: http://www.w3.org/TR/CSS21/media.html#at-media-rule . Anyway, there you have it. We will have to see if the developers decide to change how this is handled.

  20. June 7th, 2010 at 22:17 #20

    Be advised that the bulletproof and bulletproof smiley methods you propose here do not work on Android phones! My User-Agent is "Mozilla/5.0 (Linux; U; Android 1.6; en-us; T-Mobile myTouch 3G Build/DMD64) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1".

    Android does support @font-face and the double declaration method works fine. It appears to be choking on the local() line, ignoring everything after local.

  21. Lesley
    June 18th, 2010 at 02:52 #21

    @Martijn
    I'm having the exact same problem at work. Could it be some IIS setting?
    Maybe a missing mime type or cache-header setting that is messing up IE?

    As Martijn noticed, if you refresh the page, the font renders correct…

  22. Lesley
    June 18th, 2010 at 03:37 #22

    @Lesley

    At work the problem seems related to a frameset. Anyone any ideas?

  23. June 23rd, 2010 at 11:58 #23

    "If a @font-face declaration is within a media query @media screen { …, it will fail in Firefox. (Thx Ben Kulbertis) http://bugzil.la/567573"

    Thank you so much! Four hours of pulling hair and search the Net before finding this. Problem solved!

    NOTE: This page bookmarked has been bookmarked for future frustation solving.

  24. John
    June 27th, 2010 at 07:38 #24

    might be a dumb question but how do i type the smiley face in a text editor?

  25. June 27th, 2010 at 13:13 #25

    @John Heh. good question. I normally come back to this post and then copy paste. You can also google `unicode smiley` and copypaste from there. :p

  26. raj
    June 29th, 2010 at 02:09 #26

    hi paul, great blog!

    I am experiencing a delay when implementing @font face. Is this normal? Am I doing anything wrong?

  27. July 1st, 2010 at 09:31 #27

    Couple of issues I've ran into with SVG on the iPhone recently:

    SVG fonts don't work with a cache manifest. Due to the manifest treating # as comments and Mobile Safari requiring the font ID reference in the URL.
    In my tests using text-overflow: ellipsis; turned the contents into only "…" and nothing else.

  28. July 1st, 2010 at 10:24 #28

    @Tristan Dunn
    Nice! thank you. Add to that svg fonts dont work reliably with letter-spacing.

  29. July 6th, 2010 at 21:50 #29

    Tristan, I added your notes into the article.. I'm curious if you leave off the hash in the manifest but then use it in the CSS if it'll work…

  30. July 13th, 2010 at 13:41 #30

    Regarding Paul's question of leaving off the hash in the manifest but using it in the CSS: That makes logical sense but attempting it still fails. I don't think it fails because the hash is interpreted as a comment (the spec is really clear that a comment must appear on its own line), but – alas – the bug *is* real.

  31. July 14th, 2010 at 16:04 #31

    I came eventually to this treasure-trove of information while trying to get @font-face working in Firefox 3.6.6 on OS X.

    I generated a font-face kit for Diavlo using Font Squirrel. Tossing the file demo.html at Firefox fails to render the font; I did notice after the fact that you mention that Firefox doesn't do right when using file:// . So I put the Squirrel's kit at the docroot of the local Apache server — still no Diavlo, just the default font.

    Your test file http://dl.dropbox.com/u/39519/webfontsdemo/index.html also fails in Firefox. The default font is used in every test case.

    Any idea what could be going on? I tried disabling all Firefox plugins in case something was interfering; no change.

  32. July 15th, 2010 at 13:01 #32

    Just wanted to confirm Tristan's "text-overflow:ellipsis" find as well. It really does truncate the entire string to ellipsis. Reverting to a non-SVG font fixes it.

    Tristan, Paul: Have you filed a bug at Apple regarding these SVG font problems?

  33. July 16th, 2010 at 06:34 #33

    Been testing on an HTC Desire (Android 2.1). As suggested earlier, 'local' stops it loading anything. Without local it'll load the ttf, but doesn't use it (tried base64 also).

    Couldn't get android to eat the SVG file either.

  34. July 16th, 2010 at 14:47 #34

    In IE6-8, using createStyleSheet and then setting styleElem.styleSheet.cssText to a text value that includes a @font-face declaration going into will crash IE6-8.

    John, I'm wondering if you know of any workaround for this, or is it just impossible to dynamically insert @font-face declarations in IE6-8? Thanks in advance!

  35. July 16th, 2010 at 14:55 #35

    @Nathan Rajlich
    nathan,
    diego perini found a way to avoid the crash
    its in the top of the code here.
    http://javascript.nwbox.com/CSSSupport/css-support.js

    good luck

  36. July 26th, 2010 at 19:18 #36

    Adding this to my gedit snippets, thanks!

  37. Girish
    July 27th, 2010 at 11:43 #37

    Can anybody tell me how to integrate differenet fonts in the website which will work, if the sytem donot have th eparticular font type.

  38. July 28th, 2010 at 08:57 #38

    @Dave Myron Thanks for the confirmation. I have not filed bugs yet.

  39. August 3rd, 2010 at 13:23 #39

    Also worth noting that users who are on Win XP will not get anti-aliasing in IE6 or any version of FF. It's a pain. My best solution is to detect the OS version, and use Cufón (when allowed by the font) for those users, and use font-face for the rest.

  40. August 3rd, 2010 at 14:36 #40

    We use a program called tealeaf at my workplace to track user interaction and see the problems clients are having in order to fix them more easily. We wanted to test an embedded font using @font-face so I implemented the bulletproof syntax with the smiley. Everything worked great and it went into production. In tealeaf, you can see a record of "viewable pages" that the user has visited during their session. We started noticing a number of IE7 users with the non-ie font files loading as "viewable pages." We aren't really sure if the user is impacted in any way by this or if the files are actually downloading to the user. Ever heard or seen anything like this?

  41. August 13th, 2010 at 16:22 #41

    @Dave Myron
    I have a working proof of the svg files not behaving properly in the cache manifest. If you include the font name normally you will have it be downloaded, but @fontface is still looking for the url:'fontfilename#fontid' so it fails.

    if someone knows of a way to get the font file to download and then the identifier be added afterwards within the @fontface statement, that may work.

    http://straathof.acadnet.ca/pinch/

    This is for an opensource publishing engine, and I need a solution… http://straathof.acadnet.ca/beta2.5.5/

  42. Tran
    August 15th, 2010 at 13:13 #42

    Everyone commenting here is a Genius! Thank you all for your tremendously helpful knowledge.
    :-)

  43. bilagaana
    August 15th, 2010 at 16:05 #43

    One week into CSS and full of dumb questions: After much experimentation, I take it that @font-face cannot be used within the property declarations of ID or CLASS statements? [I hope I'm using the terms correctly; feel free to correct].

    My objective is to have one or more links on the page in a non-standard font, leaving the other links in the default font.

    Thanks for any guidance.

  44. joern
    August 16th, 2010 at 07:04 #44

    If you really need letter-spacing with a SVG font on iOS (on iPad-Pod'n'Phone) here's a little workaround in jQuery. I have to admit, it's rather ugly … but works.

    // call this when running on iOS
    $("body *").each(
    	function (index, element) {
    		if ($(element).text() != $(element).html()) return;
    		var ls = parseInt($(element).css("letter-spacing"));
    		if (ls==0) return;
    		$(element).html($(element).text().split("").join(''));
    	}
    );
  45. Marijn
    September 5th, 2010 at 15:39 #45

    @Martijn
    I have experienced the same on one of my sites. Ended up using the META tag for IE8 to render in IE7 mode – which I already dislike very much – and then a conditional line of CSS for IE7 (below the link to the general stylesheet), in which I once again defined the font-family. Somehow IE needed this bit of encouragement… Still looking for a cleaner solution, though.

  46. Martijn
    September 7th, 2010 at 03:59 #46

    @Marijn
    Thanks for the tip. I'll try it out!

  47. Johny why
    September 11th, 2010 at 00:18 #47

    Re the gotcha with remote font files in Firefox:
    -my web host does not allow custom Htaccess, so cannot do that

    -if I use base64 to embed fonts in CSS, then CSS file becomes huge. Will that not slow down page loading, even after the font is downloaded first time?

    -my CSS file is ALSO remote. Tried hosting font local to HTML page with remote CSS. Did not fix it.

    Any suggestions. THANKS

  48. Complainingest
    September 15th, 2010 at 15:57 #48

    @Nick Venturella I've run into the same problem with Android – there is seemingly no way to satisfy both IE and Android without a conditional stylesheet. I'm serving everyone .woff, .ttf, and .svg and then serving IE only an .eot – and I'm not declaring a local src anywhere. This works everywhere I've tried so far (except Camino on OSX 10.4.11, but I think there are only three or four of us left anyway).

    Also, just to add to the problems: @font-face will not print with Firefox (3.6.9) or Chrome (6.0.472.55) on Windows 7. So there's that to deal with next, unless anyone has a suggestion…

  49. Martijn
    September 22nd, 2010 at 06:42 #49

    @Marijn
    It seems that when removing the sans-serif fallback font solves the problem. I don't know why this is. Somebody got a clue?

  50. September 30th, 2010 at 11:54 #50

    One more caveat we just ran into: browser security settings disallow font downloading. See Conclusions and hover the tooltip "depending on browser settings": http://randsco.com/index.php/2009/07/04/p680

    This setting was pushed down at the client's enterprise :(

  51. October 7th, 2010 at 03:36 #51

    I'm also having a hard time getting the actual font to print, I can get it to recognize the font size but its not pulling in the actual font style. Any ideas?

    cheers
    D

  52. Alex
    October 9th, 2010 at 08:22 #52

    @Martijn
    Got the same problem. In IE font-face does not work. This issue appears only if you use frameset or iframe. Removing frame solves the issue. Still looking for a solution but can't find any. Removing sans-serif doesn't help in my case.

  53. October 17th, 2010 at 07:25 #53

    Thanks a lot, this is a really useful post. Bookmarked :)

  54. October 17th, 2010 at 07:50 #54

    Great! Really useful. Thanks!

  55. October 17th, 2010 at 10:50 #55

    I can totally verify the cache manifest and svg font issue. Only real way to get embedded fonts in your offline web app is using cufon for the moment.

  56. October 20th, 2010 at 09:41 #56

    great post. any info on getting @font-face to perform better when using text-transform: uppercase?

  57. Marcy
    October 20th, 2010 at 10:20 #57

    @Keith Dawson
    The dropbox test didn't work because of Paul's statement; get the links from above:
    "Hosting the fonts on a different domain? Firefox requires some extra effort; you'll need to add the Access-Control-Allow-Origin header, whitelisting the domain you're pulling the asset from. Example .htaccess config here. Alternatively, you can use the base64 encoding in CSS (create it with the fontsquirrel generator) to avoid setting headers. details here"

    I have served Diavlo remotely to a Tumblr blog so I know the htaccess approach works.

  58. October 25th, 2010 at 14:57 #58

    great article!

    I'm currently having issues with @font-face downloaded from fontsquirrel not working in the Ipad and Iphone browser. Any insights?

    Patrick Chuprina

  59. October 26th, 2010 at 15:08 #59

    @Complainingest:

    I can't seem to get the font to show in Android at all. I have a preview here: http://www.werremeyer.com/testing/webfontkit/demo_v02.html

    I'm calling two external css files, one for the regular font-face and one via conditionals for IE. Works everywhere but Android.

    Any thoughts as to what I'm doing wrong would be greatly appreciated!

    Thx!
    -Paul

  60. November 10th, 2010 at 08:54 #60

    Another gotcha you can add to @font-face with SVG fonts and Opera:

    Opera renders each word from the wrong direction.
    for example: Paul Irish -> luaP hsirI

  61. November 10th, 2010 at 08:56 #61

    @Tom Bigelajzen
    Works perfect with TTF fonts btw.

  62. November 13th, 2010 at 15:46 #62

    please test various @font face css syntax in less known browsers (midori,konqueror,arora,etc.)…

  63. December 17th, 2010 at 18:21 #63

    The post awesome!!! Thanks.

    I still have the problem with the SVG font on Ipad and Iphone for some reason it was working for a moment and than stopped. Any ideas what can happen, I re-uploaded the entire website but the font is not the same.

  64. December 23rd, 2010 at 11:27 #64

    Folks wondering about Android support: the 'local' hack used here for IE triggers an Android bug.

    A solution for all browsers (including Android, IE and everything else) is at:

    http://stackoverflow.com/questions/3200069/css-fonts-on-android/4520467#4520467

  65. December 28th, 2010 at 00:51 #65

    Cross-protocol problem: FF3.6/Windows will not display fonts on HTTP pages if the CSS and fonts were served over HTTPS. Works on Mac. Sorry no FF bug filed yet.

  66. February 19th, 2011 at 05:05 #66

    That's a really great post with useful references. Thanks for sharing!

  67. March 9th, 2011 at 05:13 #67

    this is a gem of a tip thanks

  68. Jordan
    March 13th, 2011 at 09:15 #68

    is it possible to import stylesheets with @font-face? I'm finding that I have to declare them directly on the page that's utilizing them…haven't found any posts that show examples to the contrary

  69. Harv
    April 6th, 2011 at 11:21 #69

    How can I get @font-face to work in FF over SSL? I've tried including the style on the page instead of linking to an external CSS, tried linking to a separate CSS with an absolute path to the font using https://, and nothing seems to work. All fine in Opera, IE, Chrome.

    TIA.

  70. Martijn
    April 13th, 2011 at 03:46 #70

    I found another gotcha!

    When using a font that only contains uppercase glyphs (uncommon, but it happens) using lowercase text obviously falls back to the next best choice. You can fix it with text-transform:uppercase, however when doing so, IE9 *still* renders the characters that *would be* lowercase with the fallback font.

    As if IE9 first looks up the glyphs, and then applies the uppercase transform, and doesn't bother to look up the newly uppercased glyphs again.

    It's an edge-case, though.
    Hopefully I explained it clearly :)

  71. May 2nd, 2011 at 11:13 #71

    I noticed that 37signals.com uses Typekit for a couple fonts but somehow they serve up Times New Roman on computers that have font smoothing turned off. I can't figure out how they're doing it – there doesn't appear to be any javascript at work there… Does anyone know?

    I have a site issue that needs something like that – where the @font-face font is simply skipped if font smoothing isn't enabled. I've tried that canvas hack that was floating around – but that didn't work… it reported font smoothing when there actually wasn't any.

  72. May 19th, 2011 at 01:47 #72

    Excellent, thank you!

  73. July 27th, 2011 at 18:09 #73

    I was also under the impression that possibly with SP3 it was turned on by default, but maybe!!

  74. September 7th, 2011 at 06:46 #74

    Thanks, was having issues with bold not showing on Chrome browser, your tip ref @font-face sorted it out.

  75. September 27th, 2011 at 23:51 #75

    Bookmarked this page for future reference for svg fonts. Thanks

  76. Lisa
    October 6th, 2011 at 10:08 #76

    Finally figured out the firefox ssl issue. Simply add this to the htaccess file:

    Header set Access-Control-Allow-Origin "*"

    as found on this site: http://hacks.mozilla.org/2009/06/beautiful-fonts-with-font-face/

  77. December 3rd, 2011 at 01:48 #77

    I didn't know about the smileyface. Thanks :)

  78. Ryan
    December 6th, 2011 at 07:24 #78

    Having a Chrome Issue.. we've been noticing, when using font-face (only in chrome) that every 30secs or so the fonts flash. Again, only the fonts we are converting… It's almost like they are being called again. Very strange. Haven't noticed it in any other browser.

  79. D
    December 19th, 2011 at 12:17 #79

    @Ryan
    I'm having the same Chrome-specific issue: the web fonts I've loaded in using font-face disappear and reload each time a jquery slideshow advances to the next slide. Bizarre…

  80. Steffen
    December 19th, 2011 at 15:17 #80

    I'm having a Chrome-specific @font-face issue too:

    Typo very edgy in chrome: http://imageshack.us/photo/my-images/534/ihhhhhh.png/

    In FF there is no problem: http://imageshack.us/photo/my-images/440/itworkshere.png/

  81. January 26th, 2012 at 07:25 #81

    Found a couple more issues with IE7 & Web-Fonts.

    Make sure to place the @font-face definitions for italics last in the file. If places before normal style, IE7 will sometimes load the Italics font first and ignore the regular font.

    Also, make sure to define letter-spacing, since sometimes IE7 forgets the default value when text is selected.

  1. May 17th, 2010 at 09:13 | #1
  2. May 26th, 2010 at 16:48 | #2
  3. May 29th, 2010 at 13:10 | #3
  4. June 8th, 2010 at 07:22 | #4
  5. June 8th, 2010 at 21:47 | #5
  6. June 25th, 2010 at 14:04 | #6
  7. July 16th, 2010 at 15:49 | #7
  8. August 4th, 2010 at 06:44 | #8
  9. August 9th, 2010 at 02:35 | #9
  10. August 26th, 2010 at 17:05 | #10
  11. October 8th, 2010 at 01:44 | #11
  12. October 20th, 2010 at 10:18 | #12
  13. October 20th, 2010 at 13:33 | #13
  14. October 25th, 2010 at 01:35 | #14
  15. November 11th, 2010 at 15:30 | #15
  16. November 16th, 2010 at 09:53 | #16
  17. November 16th, 2010 at 09:53 | #17
  18. November 16th, 2010 at 21:29 | #18
  19. November 17th, 2010 at 07:09 | #19
  20. November 23rd, 2010 at 07:45 | #20
  21. November 23rd, 2010 at 23:00 | #21
  22. November 25th, 2010 at 04:43 | #22
  23. November 26th, 2010 at 20:14 | #23
  24. February 5th, 2011 at 10:46 | #24
  25. March 9th, 2011 at 06:36 | #25
  26. April 25th, 2011 at 06:14 | #26
  27. June 8th, 2011 at 06:50 | #27
  28. June 16th, 2011 at 05:18 | #28
  29. July 7th, 2011 at 00:49 | #29
  30. November 22nd, 2011 at 16:54 | #30
  31. November 28th, 2011 at 13:47 | #31
  32. January 6th, 2012 at 08:19 | #32

For code blocks, use <pre lang="javascript">. css and html4strict are also accepted.

i left this space here for you to play. <3