@font-face being ignored by IE7
I've created a @font-face css rule and all the font formats using Font Squirrel and works fine on all browsers I have tested so far, but not on IE7. The font seems to not be loaded at all.
You can see the site live at http://grupogamma.socialsnack.com/
The @font-face rules are on http://grupogamma.socialsnack.com/wp-content/themes/gamma/style.css and fonts are on http://grupogamma.socialsnack.com/fonts/
My css snippet as generated by Font Squirrel:
@font-face {
font-family: 'UniversCondensedLight';
src: url('/fonts/univers-condensedlight-webfont.eot');
src: url('/fonts/univers-condensedlight-webfont.eot?#iefix') format('eot'),
url('/fonts/univers-condensedlight-webfont.woff') format('woff'),
url('/fonts/univers-condensedlight-webfont.ttf') format('truetype'),
url('/fonts/univers-condensedlight-webfont.svg#webfonteM3WTEhs') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'UniversCondensed';
src: url('/fonts/univers-condensed-webfont.eot');
src: url('/fonts/univers-condensed-webfont.eot?#iefix') format('eot'),
url('/fonts/univers-condensed-webfont.woff') format('woff'),
url('/fon开发者_JS百科ts/univers-condensed-webfont.ttf') format('truetype'),
url('/fonts/univers-condensed-webfont.svg#webfontPDfnu2z9') format('svg');
font-weight: normal;
font-style: normal;
}
EDIT:
By using Wireshark I was able to verify the font .eot is indeed loaded, and a 200 OK is returned. The content-type is application/vnd.ms-fontobject. So the font is loaded, but just not used / not rendered properly.
It seems there was something else in my css making IE7 behave badly (shocker!)
Thankfully using some magic fairy dust (zoom: 1) solved the issue.
This approach i just did worked with IE7 and IE8. And yep.. font face declaration for IE7 is different, but simpler, compared to the "multiple-browser" way of declaring it. Here's my example. I added the fonts inside the "fonts" folder so you can see some "fonts/.." added in the code.
/* declaration of custom fontfaces */
/* first set of declaration fixes IE < v.9 issue */
@font-face {
font-family:"Open Sans Light";
src:url("fonts/OpenSans-Light.eot?");
}
/* if your browser is one of the latest ones, then it will recognize the code
below and will redeclare the font faces.
Since IE 7 and 8 do not recognize these declarations,
they will just bypass them. */
@font-face {
font-family:"Open Sans Light";
src:url("fonts/OpenSans-Light.eot?") format("eot"),
url("fonts/OpenSans-Light.woff") format("woff"),
url("fonts/OpenSans-Light.ttf") format("truetype"),
url("fonts/OpenSans-Light.svg#OpenSans-Light") format("svg");
font-weight:normal;font-style:normal;
}
I'm pretty sure it's a simple matter of "IE7 don't do that," as the kids say. Sitepoint's reference on @font-face
, found at http://reference.sitepoint.com/css/at-fontface, indicates that IE only supports certain font formats via @font-face
.
I found that I needed to add the file extension in IIS in the mime type as shown here http://technet.microsoft.com/en-us/library/bb742440.aspx
精彩评论