When and how did this process of prefixing css with vendor specific prefix begin.

Which browser/org start this and why was this started. I searched the web but found no details on this.


vendor prefixes have been around since pre css2. they are the standard method for implementing new features in a rendering engine, affixing the prefix implies that only this particular engine will render these particular properties/features/etc. vendor prefixes are rendering engine's extensions to the standard.

different implementations of the box model by ie and netscape are the root cause for all of this, as well as doctype switching. the browsers implemented standards differently and were forced with rolling back active features or dealing with what was already live.

microsoft has been doing it for awhile, as have wap css user agents, and -khtml; the explosion with css3 came about with the release of the iphone and all of its shiny. apple really set the tone in their aggressive -webkit css development.

i'm not sure who exactly, but somewhere shortly after, the idea was proposed to make them a standard per rendering engine...i remember eric meyer blogging about it and reading it on the w3c site.

upon implementation, it has turned out to be not optimal, if in the very least, because a certain percentage of developers are lazy and cannot be expected to prefix for any vendor besides -webkit. i'm being sarcastic, but that's pretty much dead on, minus the -webkit comment...the largest casualty from all of this was opera...opera mini/mobile on ios were pretty much ignored by the -webkit fan club, causing entirely too many sites to be "broken" or "ugly" when viewed using opera mini/mobile....so opera quit -o- and threw away presto for webkit.


(From memory) they were doing it way back in the days of the browser wars albeit inconsistently. I recall a couple of Netscape specific prefixes from my time in the browser wars (usually where IE/Opera had got there first.) But I don't have a specific reference.

It became standard practice when work began on CSS3. Vendors proposing a standard needed to demonstrate the property in action to propose it to the W3C. Since multiple vendors might want a tag implemented differently they used vendor specific names to avoid conflict and properties lose their vendor prefixes once and resolved their differences to reach CR (Candidate Recommendation) status in the standards process.


javascript coding may have had something to do with its spread. Around the same time, people were writing such code as:

if (document.all) browser = isIE; else if(document.layers) browser = isNN;

much like they do today. So, when css started taking off, there was already a precedent for using vendor tags.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.