diff --git a/assets/style.css b/assets/style.css index 3bb0d51bf..eed256607 100644 --- a/assets/style.css +++ b/assets/style.css @@ -93,3 +93,17 @@ margin-top: 3em; } } + +.greycode code { + background: #f3f3f3; + padding: 5px 5px 4px 5px; + border-radius: 3px; +} + +.greycode code + em { + color: #aaa; +} + +.greycode a { + margin: 0 5px; +} diff --git a/ie.md b/ie.md index a82b23040..f0d22a42f 100644 --- a/ie.md +++ b/ie.md @@ -3,84 +3,90 @@ title: Internet Explorer layout: default --- -### IE7+ only +## CSS Selectors - * Selectors: - - `>` _(descendant)_ - - `[attr]` _(attribute)_ - - `.class1.class2` _(multiple classes)_ - - `~` _(sibling)_ - * CSS properties: - - `max-width` - - `position: fixed` +| Feature | IE6 | 7 | 8 | 9 | 10 | +| ---------------------------------------------------------- | - | - | - | - | -- | +| `>` _(descendant)_ | | 7 ✓ | ✓ | ✓ | ✓ | +| `[attr]` _(attribute)_ | | 7 ✓ | ✓ | ✓ | ✓ | +| `.class1.class2` _(multiple classes)_ | | 7 ✓ | ✓ | ✓ | ✓ | +| `~` _(sibling)_ | | 7 ✓ | ✓ | ✓ | ✓ | +| `+` _(adjacent)_ | | 7 ✓ | ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | +| `:first-child` 1 | | | 8 ✓ | ✓ | ✓ | +| `:focus` | | | 8 ✓ | ✓ | ✓ | +| `:before` `:after` _(single colon only)_ | | | 8 ✓ | ✓ | ✓ | +| `:lang` | | | 8 ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | +| `:first-of-type`, `:last-of-type` | | | | 9 ✓ | ✓ | +| `:last-child` | | | | 9 ✓ | ✓ | +| `:empty` | | | | 9 ✓ | ✓ | +| `:enabled` `:disabled` `:checked` | | | | 9 ✓ | ✓ | +| `:not()` | | | | 9 ✓ | ✓ | +| `:nth-child()` `:nth-last-child()` | | | | 9 ✓ | ✓ | +| `:nth-of-type()` `:nth-last-of-type()` `:only-of-type()` | | | | 9 ✓ | ✓ | +| `:only-child()` | | | | 9 ✓ | ✓ | +| `:target` | | | | 9 ✓ | ✓ | +| `::selection` | | | | 9 ✓ | ✓ | +| `:root` | | | | 9 ✓ | ✓ | +{:.wide.greycode} -### IE8+ only +## CSS properties - * Selectors/pseudos: ([polyfill: selectivizr][selectivizr]) - - `+` _(adjacent)_ - - `:first-child` 1 - - `:focus` - - `:before`, `:after` _(single colon only)_ - * CSS properties: - - `outline` - - `display: inline-block` 2 - - `display: table` - - `border-collapse`, `border-spacing`, `table-layout`, ... - - `whitespace: pre-wrap` - - `whitespace: pre-line` - - `box-sizing` - * Features: - - PNG alpha transparency - - `data:` URI - * JS features: - - JSON parsing - - Cross-origin resource sharing +| Feature | IE6 | 7 | 8 | 9 | 10 | 11 | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| `max-width` | | 7 ✓ | ✓ | ✓ | ✓ | ✓ | +| `position: fixed` | | 7 ✓ | ✓ | ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| `outline` | | | 8 ✓ | ✓ | ✓ | ✓ | +| `display: inline-block` 2 | | | 8 ✓ | ✓ | ✓ | ✓ | +| `display: table` | | | 8 ✓ | ✓ | ✓ | ✓ | +| `border-collapse`, `border-spacing`, `table-layout`, ... | | | 8 ✓ | ✓ | ✓ | ✓ | +| `whitespace: pre-wrap` | | | 8 ✓ | ✓ | ✓ | ✓ | +| `whitespace: pre-line` | | | 8 ✓ | ✓ | ✓ | ✓ | +| `box-sizing` | | | 8 ✓ | ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| `background-clip` | | | | 9 ✓ | ✓ | ✓ | +| `background-origin` | | | | 9 ✓ | ✓ | ✓ | +| `background-size` | | | | 9 ✓ | ✓ | ✓ | +| `background: x, y, z` _(multiple backgrounds)_ | | | | 9 ✓ | ✓ | ✓ | +| `opacity` | | | | 9 ✓ | ✓ | ✓ | +| `border-radius` | | | | 9 ✓ | ✓ | ✓ | +| `box-shadow` | | | | 9 ✓ | ✓ | ✓ | +| `rgba()` | | | | 9 ✓ | ✓ | ✓ | +| `transform` | | | | 9 ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| `animation` | | | | | 10 ✓ | ✓ | +| `transition` | | | | | 10 ✓ | ✓ | +| `linear-gradient()` | | | | | 10 ✓ | ✓ | +| `text-shadow` — [polyfill][text-shadow] | | | | | 10 ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| `border-image` | | | | | | 11 ✓ | +{:.wide.greycode} -## IE9+ only +## Features - * Selectors/pseudos: ([polyfill: selectivizr][selectivizr]) - - `:first-of-type`, `:last-of-type` - - `:last-child` - - `:empty` - - `:enabled`, `:disabled`, `:checked` - - `:not()` - - `:nth-child()`, `:nth-last-child()`, - - `:nth-of-type()`, `:nth-last-of-type()`, `:only-of-type()` - - `:only-child()` - - `:target` - - `::selection` - * CSS properties: - - `background-clip` - - `background-origin` - - `background-size` - - `background: x, y, z` _(multiple backgrounds)_ - - `opacity` - - `border-radius` - - `box-shadow` - - `rgba()` - - `transform` - * CSS features: - - `@media` queries ([polyfill: respond.js][respond]) - * HTML5 features: - - `` - - `` - - `` - -### IE10+ only - - * CSS features: - - `animation` - - `transition` - - `linear-gradient()` - * HTML features: - - `` - - `` - * JS features: - - Web sockets - -### Not in IE10 (or below) at all - - - `text-shadow` ([polyfill][text-shadow]) +| Feature | IE6 | 7 | 8 | 9 | 10 | 11 | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| PNG alpha transparency | | 7 ✓ | ✓ | ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| data URI [⊙][datauri] | | | 8 ✓ | ✓ | ✓ | ✓ | +| JS: JSON parsing [⊙][json] | | | 8 ✓ | ✓ | ✓ | ✓ | +| JS: Cross-origin resource sharing [⊙][cors] | | | 8 ✓ | ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| CSS: `@media` queries — [polyfill][respond] | | | | 9 ✓ | ✓ | ✓ | +| HTML: `` | | | | 9 ✓ | ✓ | ✓ | +| HTML: `` | | | | 9 ✓ | ✓ | ✓ | +| HTML: `` | | | | 9 ✓ | ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| CSS: flexbox [⊙][flexbox] 3 | | | | | 10 ✓ | ✓ | +| HTML: `` [⊙][placeholder] | | | | | 10 ✓ | ✓ | +| HTML: `` | | | | | 10 ✓ | ✓ | +| HTML: `` [⊙][validation] | | | | | 10 ✓ | ✓ | +| JS: Web sockets | | | | | 10 ✓ | ✓ | +| ---------------------------------------------------------- | - | - | - | - | -- | -- | +| JS: Fullscreen mode | | | | | | 11 ✓ | +{:.wide.greycode} ## Polyfills @@ -110,23 +116,27 @@ Misc ### IE Conditional comment HTML - - - - - +```html + + + + + +``` ### IE conditionals - - Not IE +```html + + Not IE +``` Footnotes --------- - * (1) = doesn't work for elements inserted via JS - * (2) = IE6/7 can only support inline-block for elements that are naturally - inline, like span + * (1) = first-child: doesn't work for elements inserted via JS + * (2) = inline-block: IE6/7 can only support inline-block for elements that are naturally inline, like span + * (3) = CSS flexbox: IE10 only supports the 2012 syntax with `-ms-` prefix [text-shadow]: https://github.com/heygrady/textshadow [ie7.js]: http://ie7-js.googlecode.com/svn/test/index.html @@ -139,3 +149,9 @@ Footnotes [modernizr]: https://modernizr.com [ecsstender]: http://ecsstender.org/ [respond]: https://github.com/scottjehl/Respond +[flexbox]: http://caniuse.com/#feat=flexbox +[cors]: http://caniuse.com/#feat=cors +[json]: http://caniuse.com/#feat=json +[datauri]: http://caniuse.com/#feat=datauri +[validation]: http://caniuse.com/#search=validation +[placeholder]: http://caniuse.com/#feat=input-placeholder