Mittwoch30. April 2008

Dieser Beitrag ist meinem Freund und Kollegen Ansgar  gewidmet.

#1 @charset

Über die @charset Regel kann optional die Kodierung einer CSS-Datei angegeben werden. Zur Auswahl stehen hier zahlreiche ISO-Kodierungen (z.B. ISO-8859-1), wie auch Unicode-Kodierungen (z.B. UTF-8). Bei der Anwendung gibt es jedoch zwei wichtige Regeln zu beachten:

  1. @charset muss immer in der ersten Zeile eines Stylesheets stehen, andernfalls ignorieren Browser wie der Safari den kompletten Inhalt der Datei.
  2. Es darf immer nur eine @charset Regel in einer Datei stehen. Andernfalls ignorieren einige Browser alle CSS-Regeln ab dem zweiten Auftreten von @charset.

Der zweite Punkt ist besonders wichtig, wenn verschiedene Stylesheets optimiert und zu einer Datei zusammengefasst werden sollen. Die wenigsten CSS-Optimierer beachten die @charset Regel, wodurch diese plötzlich mehrfach vorkommt der Browser das Stylesheet ignoriert.

#2 @import

Über die @import Regel lassen sich externe Stylesheets in ein anderes Stylesheet. Auf diese Weise lassen sich CSS-Deklaration sauber nach Funktionen in verschiedene Dateien zerlegen und unabhängig pflegen. Auch bei der Verwendung von @import gibt es einige Punkte zu beachten.

  1. @import muss immer vor allen anderen Regeln stehen (ausgenommen @charset). Der Aufruf mehrerer @import-Regeln hintereinander ist möglich.
  2. Innerhalb einer @media-Regel ist @import nicht zulässig. Das wäre eine Verletzung von Regel 1, weshalb Firefox, Safari, Opera und alle anderen modernen Browser die @import-Regel in diesem Fall ignorieren.
  3. So verlockend die optionale Angabe des Ausgabemediums auch ist (z.B. @import (mein.css) screen,projection), der IE6 kommt mit den Ausgabemedien nicht klar und ignoriert das externe Stylesheet. Schade eigentlich, aber solange der IE6 in signifikanter Größenordnung genutzt wird, ist diese Option so gut wie unbrauchbar.

Speziell Punkt 3 hat mich vor wenigen Tagen wieder zur Verzweiflung getrieben. Manchmal denke ich, das Internet käme schneller voran, wenn Microsoft den IE8 einstampfen würde und stattdessen damit beginnen würde, das Verständnis für CSS2(.1) des IE6 auf ein annehmbares Niveau zu patchen. Denn dieser Browser klebt der Welt wie Sch**** am Schuh und will einfach nicht verschwinden und so wie Vista nicht XP verdrängt, wird es der IE8 vermutlich auch den IE6+7 nicht endgültig zur Strecke bringen.

#3 @media

Zum Abschluss noch ein paar Worte zur @media Regel, über welche der Wirkungsbereich von CSS-Deklarationen auf vordefinierte Medientypen beschränkt werden kann.

  1. Einer der häufigsten Fehler in der Anwendung dieser Regel ist, dass die schließende geschweifte Klammer vergessen wird, denn die CSS-Eigenschaften jedes Selektors werden ebenso in geschweiften Klammern zusammengefasst. Im ungünstigsten Fall ignorieren Browser wie der Firefox daraufhin den kompletten Inhalt der Regel.
  2. Vertrauen Sie nicht dem Medientyp handheld. Zwar wurde es speziell für mobile Geräte in den Standard CSS Mobile Profile 1.0 aufgenommen, doch bis heute wird er von kaum einem Gerät unterstützt. Auch für die Ausgabe auf Mobilgeräten kommt in der Regel der Medientyp screen zum Einsatz. 

Das war’s. Ich mach dann mal Feierabend.


Donnerstag24. April 2008

Gestern Abend bei Peter Kröner entdeckt, den IETester. Ein kleines aber feines Tool, welches die Rendering- und JavaScript-Engine von IE 5.5, 6.0, 7 und 8beta1 in einer Oberfläche zusammenfasst und auf diesem Wege eine wunderbar einfache Kontrolle der jeweiligen Renderingergebnisse erlaubt.

Besonders interessant ist, dass der IETester ohne weiteres unter Vista läuft und somit einen sehr leichten Zugang zu den älteren IE-Versionen bietet, den man ansonsten nur über eine VM bekommt. Zwar fehlt mir im Moment noch der IE5.0 (der Vollständigkeit halber), doch dafür ist der IE5.5 dabei und funktioniert sogar. Die bisher bei mir genutzte Version von Tredosoft glänzte auf meinem Rechner immer nur durch sofortigen Absturz. Kurzum: Der IETester liegt in einer sehr frühen Version 0.2.1 vor und weiß schon jetzt zu begeistern.


Dienstag01. April 2008

Microsoft produziert mit dem kommenden IE8 derzeit Schlagzeilen am Fließband. Los ging es mit einer Meldung Ende letzten Jahres, nachdem die Entwicklerversion des IE8 den ACID2-Test bestanden hätte. Auf den Jubel der Webentwickler folgte die Ernüchterung und harrscher Protest als Microsoft seine Pläne zum Version Targeting vorstellte, welches den IE8 erst durch einen zusätzlichen Meta-Tags zu einem standardkonformen Rendering bewegen sollte. Per Voreinstellung sollte sich der IE8 wie ein IE7 verhalten.

Der Proteststurm der Entwicklergemeinde hat Microsoft offensichtlich nachhaltig beeindruckt. In einem ersten Schritt wurde das Version Targeting entschärft und der IE8 wird per Voreinstellung ein standardkonformer Browser werden. Und heute erfährt die Community auch, woher die IE-Entwickler die Zuversicht haben, dieses ehrgeizige Ziel zu schaffen. Seit einiger Zeit wissen wir schon, dass der IE8 eine vollkommen neue Rendering-Engine erhalten wird. Jetzt ließen die Entwickler im IE-Blog einen tieferen Blick in die Internas zu und ließen damit die nächste Webstandards-Bombe platzen. Der IE8 wird auf der Webkit-Engine aufbauen, Microsoft hat diese bereits vor einiger Zeit lizensiert und mit der Entwickler-Community ein umfangreiches Kooperationsabkommen geschlossen. Dieses garantiert den Webkit-Entwicklern, dass Microsoft - genaus wie Apple es mit Safari seit einiger Zeit betreibt - eigene Weiterentwicklungen ind Patches wieder an Webkit zurückliefert und sich damit aktive an der Weiterentwicklung der Engine beteiligt.

Damit schießt Mircosoft die eigene Rendering-Engine entgültig in den Wind und stützt sich in Zunkunft auf eine der modernsten schnellsten Engines. Gleichzeitig legt der Software-Dino innerhalb kürzester Zeit zum zweiten Mal eine Rolle Rückwärts hin, und beide Male zu 100% im Sinne der Webentwickler und der weiteren Verbreitung von Webstandards. Wird am Ende etwas doch alles gut? Man mag es kaum glauben.


Seite 1 von 1 Seiten