CSS vendor prefixes
Bij CSS is het voor een aantal stijl regels mogelijk om aan te geven in welke browser deze gebruikt moet worden. Hiervoor wordt het type browser toegevoegd voor de stijl regel. Dit wordt een prefix (of ook wel vendor prefix) genoemd.
Dit wordt voornamelijk gebruikt voor nieuwe features die toegevoegd worden aan de browser. Wanneer een stijl regel net is toegevoegd bestaat er de mogelijkheid dat deze regel anders werkt dan bedoeld, of afwijkt van andere browsers. Door de feature eerst met een vendor prefix toe te voegen kan voor de specifieke browser de regel anders ingesteld worden dan de rest mocht dit nodig zijn. Wanneer blijkt dat de stijlregel correct werkt wordt de originele regel toegevoegd.
Voorbeeld
Bij de regel voor schaduwen (box-shadow) zou dit bijvoorbeeld een implementatie kunnen zijn:
box-shadow: 0 0 1px gray;
Deze regel wordt inmiddels ondersteund door alle moderne browsers. Overigens zijn er nog altijd een aantal oudere versie van browsers in de omloop waar ook rekening mee gehouden moet worden. Deze ondersteunen slechts de schaduw regel met de specifieke prefix. Daarvoor zou de volledige implementatie er zo uit komen te zien:
-webkit-box-shadow: 0 0 1px gray;
-moz-box-shadow: 0 0 1px gray;
-ms-box-shadow: 0 0 1px gray;
-o-box-shadow: 0 0 1px gray;
box-shadow: 0 0 1px gray;
De onderste regel is dezelfde als de regel die eerder genoemd is en hier wordt standaard gebruik van gemaakt. Wanneer deze regel echter onbekend is wordt er teruggevallen op de regels die er boven staan. Zo zou bijvoorbeeld een oude versie van chrome in plaats van âbox-shadowâ de â-webkit-box-shadowâ gebruiken. â-webkit-â is in dit geval de prefix. De prefix namen staan voor het volgende:
- Webkit: de engine die gebruikt wordt door onder andere Google Chrome en Safari.
- Moz: Mozilla Firefox
- Ms: Microsoft, Internet explorer en Edge
- O: Opera (inmiddels maakt Opera ook gebruik van webkit)
Verder zijn er nog een aantal minder gebruikte prefixes. Een volledige lijst is te vinden op: https://en.wikipedia.org/wiki/CSS_hack#Browser_prefixes
Zie ook: CSS auto prefixing