A couple of minutes ago I inserted the DejaVu Serif font on a Wordpress web site I'm working on. The main style sheet which makes use of the @font-face
rule was downloaded from Font Squirrel together with the source fonts. There are four web fonts formats available: TTF, EOT, SVG and WOFF. At a first glance, the @font-face
rule has been used several times to include all font variants. Each rule block takes care of inserting the specified variant using the four available formats. Let's take a look at these rules.
Here are the rules:
@font-face { font-family: 'DejaVuSerifBook'; src: url('DejaVuSerif-webfont.eot'); src: url('DejaVuSerif-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerif-webfont.woff') format('woff'), url('DejaVuSerif-webfont.ttf') format('truetype'), url('DejaVuSerif-webfont.svg#DejaVuSerifBook') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'DejaVuSerifItalic'; src: url('DejaVuSerif-Italic-webfont.eot'); src: url('DejaVuSerif-Italic-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerif-Italic-webfont.woff') format('woff'), url('DejaVuSerif-Italic-webfont.ttf') format('truetype'), url('DejaVuSerif-Italic-webfont.svg#DejaVuSerifItalic') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'DejaVuSerifBold'; src: url('DejaVuSerif-Bold-webfont.eot'); src: url('DejaVuSerif-Bold-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerif-Bold-webfont.woff') format('woff'), url('DejaVuSerif-Bold-webfont.ttf') format('truetype'), url('DejaVuSerif-Bold-webfont.svg#DejaVuSerifBold') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'DejaVuSerifBoldItalic'; src: url('DejaVuSerif-BoldItalic-webfont.eot'); src: url('DejaVuSerif-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerif-BoldItalic-webfont.woff') format('woff'), url('DejaVuSerif-BoldItalic-webfont.ttf') format('truetype'), url('DejaVuSerif-BoldItalic-webfont.svg#DejaVuSerifBoldItalic') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'DejaVuSerifCondensed'; src: url('DejaVuSerifCondensed-webfont.eot'); src: url('DejaVuSerifCondensed-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerifCondensed-webfont.woff') format('woff'), url('DejaVuSerifCondensed-webfont.ttf') format('truetype'), url('DejaVuSerifCondensed-webfont.svg#DejaVuSerifCondensed') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'DejaVuSerifCondensed'; src: url('DejaVuSerifCondensed-Italic-webfont.eot'); src: url('DejaVuSerifCondensed-Italic-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerifCondensed-Italic-webfont.woff') format('woff'), url('DejaVuSerifCondensed-Italic-webfont.ttf') format('truetype'), url('DejaVuSerifCondensed-Italic-webfont.svg#DejaVuSerifCondensed') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'DejaVuSerifCondensedBold'; src: url('DejaVuSerifCondensed-Bold-webfont.eot'); src: url('DejaVuSerifCondensed-Bold-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerifCondensed-Bold-webfont.woff') format('woff'), url('DejaVuSerifCondensed-Bold-webfont.ttf') format('truetype'), url('DejaVuSerifCondensed-Bold-webfont.svg#DejaVuSerifCondensedBold') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'DejaVuSerifCnBdIt'; src: url('DejaVuSerifCondensed-BoldItalic-webfont.eot'); src: url('DejaVuSerifCondensed-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'), url('DejaVuSerifCondensed-BoldItalic-webfont.woff') format('woff'), url('DejaVuSerifCondensed-BoldItalic-webfont.ttf') format('truetype'), url('DejaVuSerifCondensed-BoldItalic-webfont.svg#DejaVuSerifCnBdIt') format('svg'); font-weight: normal; font-style: normal; }
Each rule is made of the following statements:
font-family
: specifies the font family in usesrc
: specifies the source fonturl
: path to the source fontformat
: format of the font (embedded-opentype
(EOT),woff
(WOFF),truetype
(TTF),svg
(SVG))
Browsers parse each rule, download the requested font and compute the styles accordingly. Depending on the server's speed, you could notice that fonts are first left unstyled. For that reason, I recommend to use a similar font as the first alternative, chosen among the most common ones:
body { font: 100% 'DejaVuSerif', Georgia, serif; }