Wenn man eine neue Website erstellen möchte, wie ich es in den letzten Tagen mal wieder getan habe, steht man immer wieder vor der Entscheidung, ob man auch ältere Browserversionen vollständig unterstützen möchte. Dass der Internet Explorer 6 nicht mehr zu dieser Riege gehört, darüber dürften sich nahezu alle Webdesigner einig sein, aber was ist mit den Versionen 7 und 8 des Browsers aus Redmond? Und wie steht es um die älteren Versionen von Firefox, Opera, Chrome und Safari?
Meinem Kenntnisstand nach ist bei vielen optischen Schmankerln, wie bspw. dem text-shadow, nur der Internet Explorer wirklich kritisch. Alle anderen Browser, allen voran die Webkit-Browser Safari und Chrome, haben damit schon seit Ewigkeiten keine Schwierigkeiten mehr. Ich weiß, der CSS3-Standard ist noch gar keiner, da er offiziell noch nicht verabschiedet wurde. Blöd insbesondere deswegen, weil man für viele der CSS3-Attribute browserspezifische Präfixe vergeben muss, was die erfolgreiche Validierung eines CSS3-Stylesheets verhindert. Wenn ich mich recht entsinne, war bspw. der text-shadow mittlerweile auch ohne Präfix unter den Webkit-Browsern und Opera nutzbar, Firefox 3.6 besteht weiterhin auf das Präfix. Mit der Beta des Firefox 4 habe ich es noch nicht getestet. Aber gut, wenn mal der eine oder andere Effekt nicht angezeigt wird, bricht einem das nicht gleich die Beine, auch schlechte und alte Browser stellen die Seite wenigstens dar.
Anders sieht es mit der Verwendung von HTML5 aus. Meine Seite weist als DOCTYPE HTML5 auf. Verwenden tue ich aber keinen der neuen HTML5-spezifischen Trenner wie <article>, <section>, <header> oder <footer>, da, wenn der Browser gar kein HTML5 versteht, die Seite schlicht und ergreifend gar nicht oder vollständig falsch angezeigt wird. Ich weiß, es gibt JavaScript-basierende Hacks, die das Problem beheben, aber was ist, wenn der Benutzer auch noch zusätzlich JavaScript deaktiviert hat :-D? Wirklich schade, dass ich kein HTML5 verwenden “durfte”, ich hätte es zu gern getan. Von den JavaScript-basierenden Hacks halte ich aber nicht viel. Die restlichen Scripts, die in meiner neuen Seite eingebunden sind, sind von eher unkritischer Natur. Das jQuery-Plugin ScrollTo erzeugt einen weicheren Scrollvorgang als das normale, Anchor-basierende Scrollen und Fancybox zeigt die Bilder schick im Großformat an. Aber wenn diese beiden Scripte ausgeschaltet sind, ist es auch egal.
Positiv überrascht war ich, dass das Einbetten von Fonts mittlerweile (fast) tadellos funktioniert. Einzig und allein die Mobilgeräte zeigen die eingebetteten Fonts nicht an, so wenigstens gesehen auf meinem iPhone und einem iPad. Der Internet Explorer kann das, oh Wunder, schon seit Ewigkeiten, nämlich seit der Version 4, wenn auch mit einem speziellen Font-Format, EOT (Embedded Open Type). Alle anderen Browser mampfen brav meine TTF- und OTF-Dateien. Bisher steht aber noch ein Test mit Alt-Browsern aus, getestet habe ich wirklich bisher nur mit aktuellen Browsern auf meinem Mac. Wobei mir gerade auffällt, dass ich die EOT-Versionen meiner beiden Fonts noch gar nicht erstellt und eingebunden habe. Sollte ich wohl mal flott nachholen.
Da wir gerade beim Thema sind, hier ein kleines Beispiel für einen gültigen Eintrag einer @font-face-Deklaration in einer CSS-Datei:
https://gist.github.com/468010
Die in diesem Beispiel verwendete Schrift, die ich dann doch nicht auf meiner Seite verwendet habe, habe ich im Übrigen bei The League of Movable Type gefunden. Eine weitere sehr schöne Quelle für offene Fonts ist Font Squirrel, die auch die Schriften von The League of Movable Type anzeigen. Um die Schriften von TTF in EOT zu bekommen, habe ich den ttf2eot-Konverter verwendet. Die Konvertierung meiner OTF-Schrift ins EOT-Format hat der Online Font Converter für mich übernommen. Entsprechend der zuvor gezeigten Notation kann die Schrift nun ganz regulär über eine font-family-Anweisung verwendet werden.
Wie haltet ihr es mit der Verwendung von CSS3, HTML5 und sonstigem neumodischem Schnickschnack? Verwenden oder abwarten?