Browserpräfix
Bei der Einführung neuer CSS3-Eigenschaften wurden diese oft von einzelnen Browsern schon vor der Übernahme in den Standard implementiert. Damit diese jedoch keine Probleme verursachen, wenn ein Entwurf geändert oder verworfen wird, waren die Hersteller dazu angehalten, Eigenschaften und Werte als herstellerspezifisch mit einem vendor-prefix zu kennzeichnen.
-
-moz-: Gecko Rendering Engine (Mozilla Firefox) -
-ms-: Trident Rendering Engine (Microsoft Windows Internet Explorer) -
-o-: Presto Rendering Engine (Opera bis Version 12) -
-webkit-: WebKit Rendering Engine (Apple Safari, Google Chrome Opera 15+) -
-khtml-: KHTML Rendering Engine (Konqueror); einige ältere -khtml-Eigenschaften werden auch von WebKit verstanden.
Verwendung
main {
-moz-border-radius: 1em; /* Für Gecko (z.B. Firefox, SeaMonkey) */
border-radius: 1em; /* Eigenschaft gemäß Standard */
}
In diesem Beispiel wird eine Eigenschaft mehrfach definiert. Zuerst spezifisch für Gecko-Browser, anschließend in der standardisierten Form. Dadurch soll sichergestellt werden, dass eine Eigenschaft auch dann erhalten bleibt, wenn ein Hersteller seine Implementierung gemäß Standard aktualisiert.
-moz-border-radius ist nicht mehr notwendig.Heutige Praxis
Da im Mobilbereich viele Webseiten vor Allem auf Webkit-basierten Browsern aufgerufen wurden, hatten sich Webentwickler leider angewöhnt, CSS-Eigenschaften nur mit -webKit-Präfix zu verwenden. Dies zwang, weil Mängel in der Darstellung zuerst dem Browser angelastet werden, Microsoft (und 2016 Mozilla) dazu ebenfalls -webkit-Präfixe zu unterstützen, was die ursprüngliche Idee ad absurdum führt. Obwohl das W3C an der Idee der Browser-Präfixe festhält, setzen die Browserhersteller heute vermehrt auf Browser-Flags zum Aktivieren experimenteller Techniken.
Ein Browser-Flag ist eine versteckte Einstellung im Browser, mit der man neue Funktionen ausprobieren kann, die noch nicht für alle Nutzer freigeschaltet sind. Man kann sie ein- oder ausschalten, um neue Features zu testen, bevor sie standardmäßig verfügbar sind.
Beispiel: chrome://flags in Chrome zeigt viele solcher Flags.
Sie erlauben Entwicklern und Testern, neue Web-Funktionen auszuprobieren, bevor sie offiziell in allen Browsern verfügbar sind.
Das hilft beim Testen von Kompatibilität:
- Man kann sehen, ob ein Feature in der Praxis funktioniert.
- Man erkennt Probleme oder Unterschiede zwischen Browsern früh.
- Feedback aus solchen Tests kann in die Entwicklung von Standards wie HTML oder CSS einfließen.
Siehe auch
Weblinks
- heise.de Firefox beugt sich der Webkit-Dominanz
- The slow death of CSS vendor prefixes (fullystacked.net)