I’m trying to find a resource that has a list of browser specific implementations of CSS properties that deviate from the current W3C standards.
For example, say IE supported something like this:
.my-class {
-ms-foo: fizz buzz;
}
but when the proposal became a candidate reccomendation the standardized equivalent was:
.my-class {
foo: buzz fizz;
}
In order to support versions of IE released before the CR, I’d want to write:
.my-class {
-ms-foo: fizz buzz;
foo: buzz fizz;
}
Googling for a list of these sorts of changes hasn’t been terribly fruitful, there’s a lot of wailing and gnashing of teeth around vendor prefixes but not a lot of "gotcha" lists. Best I’ve found thus far are offhand mentions of changes (in that case, -webkit-border-radius), but those rarely document the actual expected input; they tend to just give a broken example.
I have found an OK list of the prefixes that exist (along with their standard status), but unfortunately it doesn’t give the kind of details necessary for spotting the changes I’m interested in.
So, do any such lists exist?
I’ll take partial lists, or ones that exclude really old browsers (don’t really care about IE6, for example). I’m also only really concerned about the big 3.1 browsers (IE, Firefox, Webkit/Chrome/Safari, and Opera).
I also care about things that haven’t been addressed by the W3C (like appearance), this is a hard enough problem without worrying about the things vendors have straight-up made up.
There doesn’t seem to be an exhaustive list out there, but based on Compass, CSSPrefixer, and this list from Peter Beverloo here’s what I can scrape together.
background-clip
-moz-background-clipacceptspaddingandborderinstead ofpadding-boxandborder-box-webkit-background-clipbehaves the same as the -moz version, but also acceptscontentinstead ofcontent-boxbackground-origin
-mozand-webkitversions accept the same values as theirbackground-clipequivalentsbackground-size
-webkit-background-sizeduplicates single values, so-webkit-background-size: 10pxis equivalent tobackground-size: 10px 10px. The prefixed webkit equivalent ofbackground-size:10pxis-webkit-background-size: 10px auto;.border-radius and friends
The
-mozequivalents ofborder-top-left-radius,border-bottom-left-radius, etc. are-moz-border-radius-topleft,-moz-border-radius-bottomleftand so on.-webkit-border-radiusdiffers from the final spec in it’s handling of the two value shorthand. Webkit treats it as if all the long form versions were passed two values.More concretely:
-webkit-border-radius: 1px 2pxis equivalent towhile
border-radius: 1px 2pxis equivalent toThe only work around I know of for this is to expand the two value case of
-webkit-border-radiusinto it’s long forms so as to match properborder-radius.display
If you want
diplay:boxto work everywhere, you need to use prefixed values like so:I have no idea why this is, as all the box model specific properties (like box-align) also have prefixed versions in those browsers.
Note that this doesn’t include anything that’s not currently part of a W3C document, like appearance, even if multiple browsers support it.