Codecandies

Embedden Sie jetzt!

fontatfirefox

Mit @font-face lassen sich Schriften in Webseiten einbetten. Machen Sie das!

Ok, es ist soweit, mit dem neuen Firefox 3.5 (und Safari 4 und Opera 10beta), steht immer mehr Nutzern unserer Websites Fontembeddingdownloading1 zur Verfügung. Damit widerum steht der flächendeckenden typographisch ordentlich gestylter Websites nicht mehr viel im Weg, ausser natürlich die IE-Familie, aber die ignorieren wir hier einfach einmal.2

Und so geht’s

Das obige Beispiel nutzt das Embedding, der Code dafür sieht ungefähr so aus:

@font-face {
    font-family: Kaffeesatz;
    font-weight: normal;
    src: url(fonts/YanoneKaffeesatz-Regular.otf) format('opentype');
}
h1 {
	font: normal 3em/120% Kaffeesatz, sans-serif;
	text-shadow: 1px 1px 1px #eee;
}

Der genutzte Font ist die unter CC Lizenz stehende Kaffeesatz. Der Code ist vielleicht nicht ganz selbst erklärend: mit @font-face legen wir selbst eine Font fest, den Namen der font-family kann man dabei frei wählen, ein dem Font nahe stehender Name empfiehlt sich natürlich. Als src wird der Pfad zum OTF- oder TTF-File angegeben, danach noch das format. Fertig. Damit steht uns die font-family „Kaffeesatz” zur weiteren Nutzung zu Verfügung. Das H1 macht auch gleich Gebrauch davon, noch ein wenig versüsst mit etwas CSS3-text-shadow (wenn wir auf den IE sch…sen, dann aber richtg).

Mehr Gewicht, bitte

Folgendes ist zu beachten: wir haben bis hier nur den Font für die font-weight normal definiert. Wollen wir eine bolde Schrift, muss ein Font dafür embedded werden, und zwar bspw. so:

@font-face {
    font-family: Kaffeesatz;
    font-weight: normal;
    src: url(fonts/YanoneKaffeesatz-Regular.otf) format('opentype');
}
@font-face {
    font-family: Kaffeesatz;
    font-weight: bold;
    src: url(fonts/YanoneKaffeesatz-Bold.otf) format('opentype');
}
h1 {
	font: normal 3em/120% Kaffeesatz,sans-serif;
	text-shadow: 1px 1px 1px #eee;
}
h2 {
    font: bold 2em/120% Kaffeesatz, sans-serif;
    text-transform: uppercase;
}

In diesem Falle würden die H2s bold gesetzt, da wir hierfür YanoneKaffeesatz-Bold.otf embedded haben. Ähnliches können wir nun auch mit font-style: italic anstellen.

Nochmal zurück zur Fettung: Safari kann einige Fettungsstufen mehr anzeigen als Firefox. Unterstützt wird eine genauere Abstufung des Fettungsgrades, wenn man bspw. einen Font hat die Kaffeesatz. Das kann dann so aussehen:

@font-face {
    font-family: Kaffeesatz;
    font-weight: 100;
    src: url(fonts/YanoneKaffeesatz-Thin.otf) format('opentype');
}
@font-face {
    font-family: Kaffeesatz;
    font-weight: 300;
    src: url(fonts/YanoneKaffeesatz-Light.otf) format('opentype');
}
@font-face {
    font-family: Kaffeesatz;
    font-weight: 400;
    src: url(fonts/YanoneKaffeesatz-Regular.otf) format('opentype');
}
@font-face {
    font-family: Kaffeesatz;
    font-weight: 700;
    src: url(fonts/YanoneKaffeesatz-Bold.otf) format('opentype');
}

Das geht sicherlich auch mit keywords wie „light” oder „bolder” etc.

schriftenvergleich

Das Fontrendering unterscheidet sich mitunter, links Firefox, rechts Safari 4 (Mac).

Fonts von der Platte zuerst

Was ja auch angehen kann, ist dass man eher einen Font nutzen möchte, der sowieso schon lokal vorhanden ist und nur wenn dieser nicht vorhanden ist, will man einen Download anbieten. Geht auch, wie man bei John Dagget nachlesen kann, mit der Eigenschaft „local”:

@font-face {
  font-family: NeueHelvetica;
  src: local("Helvetica Neue"),
       local("HelveticaNeue"),
       url(fonts/MgOpenModernaRegular.ttf);
}

Hier sind zwei local angegeben, über diese Liste wird iteriert, genauso wie in der normalem font-family Zuweisung, wo die Schriften durch Kommata getrennt werden (das diese Zusammenstellung von Namen nicht immer ganz einfach ist, lesen wir Herrn Preidel).

Und nun?

Natürlich sollte man nur Schriften nehmen, die man auch fürs embedding benutzen darf, sonst gibt’s schnell Lizenzärger. Hier gibt’s ein paar freie Schriften, die das ausdrücklich zulassen. Ach ja und zum guten Schluss, sollte man font-size-adjust auf keinen Fall vergssen.

Updates

1) Von „Embedding“ zu sprechen ist eigentlich nicht richtig, weil der Font tatsächlich auf den Rechner des Nutzers heruntergeladen wird. Das schlägst sich natürlich auch in der Größe der Website nieder und ist auch für die Lizenzfrage nicht unerheblich.

2) Na gut, ich hab noch einen Link aus meinen Bookmarks geangelt, der mehr in Sachen IE verrät.

7 Kommentare

  1. ron am 4. Juli 2009 um 10:25 Uhr:

    kuhl. knappe 10 jahre zu spät, aber dennoch kuhl. man steht dem ganzen thema mittlerweile etwas leidenschaftslos gegenüber, so sehr hat man sich an die monokultur gewöhnt.

  2. Ralf am 14. Juli 2009 um 02:00 Uhr:

    Gut was dazu gelernt in diesem Beitrag. Werde das demnächst mal auf einer meiner Seiten ausprobieren.

  3. Tim Baumann am 15. Juli 2009 um 17:54 Uhr:

    Weißt du, ob es schon ein Firefox-AddOn gibt, um eingebundene Schriften einfach (also mit Rechtsklick, im Menü oder sogar automatisch) runterladen zu lassen?

  4. Nico Brünjes am 15. Juli 2009 um 18:06 Uhr:

    Hmmm, nein, ist mir noch nicht über den Weg gelaufen. Bin aber auch nicht ganz up to date mit den neuesten AddOns.

    Die Idee macht das Lizenzproblem natürlich nochmal deutlicher. ;)

  5. minstyle am 11. November 2009 um 11:40 Uhr:

    Kannst du mir schreiben, wieso man für die font-family einen Namen definieren muss (hier: “Kaffeesatz”)?

  6. Nico Brünjes am 11. November 2009 um 12:52 Uhr:

    Der Name („Kaffeesatz”) wird benutzt, wenn man an anderer Stelle auf diesen Font referenzieren will, also so:

    h2 {font-family: Kaffeesatz;}

    Hinter diesem Familiennamen können sich dann wieder diverse Schriften verbergen, die zu der Familien zusammengefasst sind, beispielsweise die verschiedenen Schnitte.

  7. minstyle am 11. November 2009 um 23:55 Uhr:

    Vielen Dank für deine Antwort.

    Also handelt es sich hierbei lediglich um eine Art Autor/Copyright-Angabe?

    Wenn man den Namen der font-family frei wählen und benennen kann, wie kann dann der Browser andere Schriftfamilien für diese Schriftart auswählen? Hast du da vielleicht brauchbare Link-Referenzen speziell zu diesem Thema?

10 Pings

  1. LostFocus » Blog Archive » @font-face für Dummies am 30. Juni 2009 um 11:46 Uhr:

    [...] und klare Einführung zu embedded fonts via CSS bei Code Candies. Das könnte das Web wieder ein kleines bißchen besser machen. Leave a Reply [...]

  2. links for 2009-06-30 | The Cynxpire am 30. Juni 2009 um 15:03 Uhr:

    [...] Embedden Sie jetzt! | Code Candies (tags: fonts typography font-face) [...]

  3. 5 vor 12 am 30. Juni 2009 - bertdesign.de am 1. Juli 2009 um 11:57 Uhr:

    [...] Embedden Sie jetzt! | Code Candies – Kompakte Zusammenfassung, wie sich Schriften einbetten lassen. Dass der IE dabei völlig hinten rüber fällt ist erstmal egal – selbst Schuld :D [...]

  4. Anonymous am 3. Juli 2009 um 17:15 Uhr:

    [...] [...]

  5. Kostenloser Font: Kaffeesatz : powerbook_blog am 5. Juli 2009 um 13:25 Uhr:

    [...] Kaffeesatz ist eine ganz interessante, wie auch kostenlose (CC) Schriftart. via Code Candies ( der verlinkte Artikel über Font-Embedding ist auch nicht [...]

  6. @font-face » BlogHouse am 6. Juli 2009 um 08:38 Uhr:

    [...] es geht, zeigen euch die Codecandies   « XHTML2 R.I.P. | [...]

  7. Lesetipps zum Wochenende - Flohbude am 11. Juli 2009 um 11:34 Uhr:

    [...] Embedden sie jetzt! [...]

  8. @font-face considered harmful? | Code Candies am 14. Oktober 2009 um 10:11 Uhr:

    [...] sich die Kunde von den Möglichkeiten des Fontembedding nun reichlich verbreitet hat, tauchen leider die ersten Problme auf. Steve Sounders hat einige [...]

  9. Mozilla 3.6beta | Code Candies am 1. November 2009 um 10:54 Uhr:

    [...] und es sieht so aus, als das dies der Weg aus der Linzenzfalle beim einbetten von Schriften via @font-face [...]

  10. @font-face « AWESOME am 7. Februar 2010 um 18:06 Uhr:

    [...] Verwendung von @font-face ist mehr als simpel und wird bei codecandies oder hacks.mozilla.org erklärt. Im Grunde genommen sind die einzigen 3 Dinge, die man braucht eine [...]

Kommentieren

RSS Feed Kommentare als Feed abonnieren.

Erlaubte Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .

Falls Du Sourcecode in Deinem Kommentar unterbringen möchstest, nutze doch bitte die Angebote pastie oder pastebin. Dort kannst Du Deinen Code ablegen und den Link dahin, dann hier im Kommentar hinterlassen.

Es gelten diese Regeln.