Nicht einfach die @font-face aus Google Fonts URLs kopieren

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich glaube nicht, dass dies eine Epidemie ist oder so etwas, aber ich habe es schon ein paar Mal gesehen und sogar befürwortet. Das meine ich…

Sie gehen zu Google Fonts und wählen eine Schriftart wie Open Sans, und es gibt Ihnen entweder einen <link> oder ein @import mit einer URL, um diese Schriftart für die Verwendung auf Ihrer Website bereitzustellen.

Sie können dort hineinschauen und sehen, was es zurückgibt…

Es sind natürlich nur einige @font-face Deklarationen!

Nun springt Ihr performanceorientiertes Gehirn an. Moment. Also mache ich eine HTTP-Anfrage für dieses Stylesheet, und dann macht es weitere HTTP-Anfragen für diese woff2-Dateien, die es verknüpft. Verdammt den Mittelsmann, warum nicht einfach diese @font-face Blöcke daraus kopieren und verwenden.

Das können Sie! Aber!

Das Problem ist, dass Google hier ausgefeilte Google-Dinge tut und der Inhalt dieses ursprünglichen Stylesheets sich je nach anfragendem Browser ändert. Dieser Screenshot oben ist Chrome 66. Hier ist Firefox 20 unter Windows 7

Es ist anders! Es gibt nur woff, nicht woff2. Wenn wir diese URL in IE 8 öffnen würden, bekämen wir einen @font-face Block, der das eot-Format enthält!

Der Punkt ist, dass das, was diese URL liefert, sehr spezifisch für das ist, was der aktuelle Browser benötigt. Das ist eine ziemlich coole Sache, die man abstrahieren kann und sich keine Sorgen machen muss. Wenn neue Browser neue Formate und neue CSS-Syntax benötigen, wird das einfach mitgeliefert.

Nicht, dass Google Fonts damit perfekt wäre. Indem Sie beispielsweise Ihre eigenen @font-face Blöcke nicht kontrollieren, können Sie font-display nicht nutzen, was schade ist. Vielleicht bekommen wir das irgendwann, oder vielleicht lohnt es sich, Ihre Google Fonts selbst zu hosten, was noch eine ganz andere Sache ist, auf die wir irgendwann eingehen werden.