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.
Inhaltsverzeichnis
Übersicht
-
-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 angesehen 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.