This article is being considered for deletion in accordance with Wikipedia's deletion policy. Please share your thoughts on the matter at this article's deletion discussion page. |
![]() | This article needs to be updated.(April 2017) |
Cascading Style Sheets |
---|
Concepts |
Philosophies |
Tools |
Comparisons |
This article compares Cascading Style Sheets (CSS) support for several browser engines.
Engine | Status | Embedded in |
---|---|---|
WebKit | Active | Safari browser, plus all browsers hosted on the iOS App Store. |
Blink | Active | Google Chrome and other web browsers based on Chromium, such as Microsoft Edge, Opera, and Brave. |
EdgeHTML | Maintained | Universal Windows Platform apps; formerly in the Edge browser [1] . |
Gecko | Active | Firefox browser and Thunderbird email client, plus forks like SeaMonkey and Waterfox. |
KHTML | Maintained | Konqueror browser |
Presto | Discontinued | Formerly used as Opera's browser engine, prior to the migration to Chromium and Blink. |
MSHTML (Trident) | Maintained | Internet Explorer and versions of Microsoft Outlook prior to Outlook 2007. |
These indicate the level of support for the given item in each engine. By default, the most recent version of the engine is implied. However, a specific version number can be listed; when this indicates full support, it's the initial version of the engine fully supporting the item.
Value | Meaning |
---|---|
Yes | Fully supported |
No | Has never been supported |
Partial | Only some values are supported |
Incorrect | Not implemented correctly in all cases |
Experimental | May be incomplete or buggy |
Nightly build | Currently in development; full support is expected |
Depends | Only supported for the specified conditions |
Dropped | No longer supported |
The DOM properties corresponding to vendor-specific experimental CSS properties are prefixed with the vendor-prefix, without any hyphens, and with first letters capitalised, e.g. element.style.MozBorderRadius
corresponding to the -moz-border-radius
property, or element.style.OTransform
corresponding to the -o-transform
property. The exception is MSHTML, which used a lower-case prefix, e.g. element.style.msTransform
.
-moz-
— All experimental selectors, properties and values are prefixed with "-moz-", e.g. ::-moz-selection
instead of ::selection
.-webkit-
— All experimental selectors, properties and values are prefixed with "-webkit-", e.g. -webkit-box-shadow
instead of box-shadow
.-ms-
— All experimental properties are prefixed with "-ms-", e.g. -ms-interpolation-mode
instead of interpolation-mode
.-khtml-
— All experimental selectors, properties and values are prefixed with "-khtml-", e.g. -khtml-opacity
instead of opacity
.-o-
— All experimental properties are prefixed with "-o-", e.g. -o-transition-property
instead of transition-property
.MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
CSS2 | !important | Weight increasing | 7.0 | 12 | 1.0 | 85 | Yes | 1.0 | |||
/*Comment*/ | Comments | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 | ||||
@import | Import stylesheet | 8.0 | 12 | 1.0 | Yes | Yes | 1.0 | ||||
@charset | Character set | 5.5 | 12 | 1.0 | Yes | 4.2.3 | 1.0 | ||||
@media | Media-specific rules | 5.5 | 12 | 1.0 | Yes | Yes | 1.0 | ||||
css- namespace-3 | @namespace | Namespace declaration | 9.0 [t 1] | 12 | 1.0 | Yes | Yes | 1.0 | |||
earlier draft of css3- conditional | @document | Restriction by URLs | No | No | 6.0 | No | No | No | |||
css- animations-1 | @keyframes | Animation key | 10.0 [t 2] | 12 | 16.0 | Experimental | No | 2.12 | |||
css- conditional-3 | @supports | Conditional Rules | No | 12 | 22.0 [g 1] | 28.0 [w 1] | No | 2.12 | |||
css-counter- styles-3 | @counter-style | Custom Counter Styles | No | No | 33.0 [g 2] | No | No | No | |||
css-device- adapt-1 | @viewport | Viewport, Device Adaptation | 10.0 [t 3] | 12.0 | No [w 2] | No | No | 2.7.62 [p 1] | |||
filter- effects-1 | @filter | Filter | No | No | 35.0 | Experimental | No | No | |||
Page | |||||||||||
CSS2 | @page | For paged media | 8.0 | 12 | 19.0 [g 3] | Nightly Build [w 3] | No | 1.0 | |||
css-page-3 | @top-left-corner | Margin boxes [spec 3] | No | No | No | No [w 4] | No | No | |||
@top-left | |||||||||||
@top-center | |||||||||||
@top-right | |||||||||||
@top-right-corner | |||||||||||
@bottom-left-corner | |||||||||||
@bottom-left | |||||||||||
@bottom-center | |||||||||||
@bottom-right | |||||||||||
@bottom-right-corner | |||||||||||
@left-top | |||||||||||
@left-middle | |||||||||||
@left-bottom | |||||||||||
@right-top | |||||||||||
@right-middle | |||||||||||
@right-bottom | |||||||||||
Font | |||||||||||
css-fonts-3 | @font-face | Define font | 9.0 [t 4] | 12 | 1.9.1 | 525 | 4.3 | 2.2 | |||
@font-feature-values | Define font features | No | No | 34.0 | No | No | No | ||||
@annotation | Font feature value block | ||||||||||
@styleset | No | No | No | No | No | ||||||
@swash | No | No | No | No | No | ||||||
@ornaments | No | No | No | No | No | ||||||
@stylistic | No | No | No | No | No | ||||||
@character-variant | No | No | No | No | No | ||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto |
!important
doesn't override rules defined later in the same declaration block.@import <URL><MEDIA>
, IE requests as the URL "<URL><MEDIA>
" and will include the url()
token and/or quotes in the URL, too, if present. Cannot import more than 35 stylesheets.MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Element selectors [spec 4] | |||||||||||
CSS2 | * | Universal | 7.0 | 12 | 1.0 | 85 | Yes | 1.0 | |||
E | Element | 4.0 | 12 | 1.0 | 85 | Yes | |||||
E.class | Class | 7.0 | 12 | 1.0 | 85 | Yes | |||||
E#id | ID | 4.0 | 12 | 1.0 | 85 | Yes | |||||
selectors-3 | ns|E | Namespaced | 9.0 | 12 | 1.0 | Yes | Yes | ||||
Relationship selectors | |||||||||||
CSS2 | E F | Descendant | 4.0 | 12 | 1.0 | 85 | Yes | 1.0 | |||
E > F | Child | 7.0 | 12 | 1.0 | 85 | Yes | |||||
E + F | Direct adjacent | 7.0 | 12 | 1.0 | 85 | Yes | |||||
selectors-3 | E ~ F | Indirect adjacent | 7.0 | 12 | 1.7 | 412 | 3.3.2 | 2.0 | |||
selectors-4 | E /for/ F | Reference combinators | No | No | No | No | No | No | |||
E! > F | Subject | No | No | No [g 4] | No | No | No | ||||
F || E | Column relation | No | No | No | No | No | No | ||||
Attribute selectors | |||||||||||
CSS2 | E[attr] | Has | 7.0 | 12 | 1.0 | 85 | Yes | 1.0 | |||
E[attr="value"] | Equals | 7.0 | 12 | 1.0 | Yes | Yes | |||||
E[attr~="value"] | Contains (space-separated) | 7.0 | 12 | 1.0 | Yes | Yes | |||||
E[attr|="value"] | Contains (hyphen-separated) | 7.0 | 12 | 1.0 | Yes | Yes | |||||
selectors-3 | E[attr^="value"] | Begins with | 7.0 | 12 | 1.0 | Yes | 3.4 | 1.0 | |||
E[attr$="value"] | Ends with | 7.0 | 12 | 1.0 | Yes | 3.4 | 2.0 | ||||
E[attr*="value"] | Contains substring | 7.0 | 12 | 1.0 | Yes | 3.4 | |||||
E[ns|attr] | Namespaced | 7.0 | 12 | 1.0 | Yes | 3.4 | |||||
selectors-4 | E[foo="bar" i] | Case-sensitivity | No | No | No | No | No | No | |||
Pseudo-classes | |||||||||||
CSS2 | E:link | Unvisited hyperlink | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 | |||
E:visited | Visited hyperlink | 3.0 | 12 | 1.0 | 85 | Yes | |||||
E:active | Active | 8.0 | 1.0 | 12 | 85 | Yes | |||||
E:hover | Mouseover | 7.0 | 12 | 1.0 | 419.3 | Yes | |||||
E:focus | Focused | 8.0 | 12 | 1.0 | Yes | Yes | |||||
E:first-child | First child | 7.0 | 12 | 1.0 | 85 | Yes | |||||
E:lang() | Language | 8.0 | 12 | 1.2 | 525 | 3.4 | |||||
@page:first | First page | 8.0 | 12 | No [g 5] | Yes [w 5] | No | |||||
@page:left | Left page | ||||||||||
@page:right | Right page | ||||||||||
selectors-3 | E:root | Root | 9.0 | 12 | 1.0 | 85 | 3.4 | 2.1 | |||
E:not() | Negation | ||||||||||
E:empty | Empty | 1.8 | 412 | ||||||||
E:first-of-type | First child of type | 1.9.1 | 525 | ||||||||
E:last-child | Last child | 1.0 | |||||||||
E:last-of-type | Last child of type | 1.9.1 | |||||||||
E:only-child | Only child | 1.8 | |||||||||
E:only-of-type | Only child of type | 1.9.1 | |||||||||
E:nth-child | Nth child | 1.9.1 | |||||||||
E:nth-last-child | Nth last child | 1.9.1 | |||||||||
E:nth-of-type | Nth child of type | 1.9.1 | |||||||||
E:nth-last-of-type | Nth last child of type | 1.9.1 | |||||||||
E:target | Target | 1.3 | 2.5 | ||||||||
E:enabled | Enabled state | 1.8 | 2.0 | ||||||||
E:disabled | Disabled state | 1.8 | |||||||||
E:checked | Checked state | 1.0 | |||||||||
selectors-4 | E:indeterminate | Indeterminate state | 1.9.2 | 522 | No | No | |||||
E:default | Default | No | No | 1.9 | Yes [w 6] | 4.3 | 2.0 | ||||
E:valid | Valid | 10.0 [t 5] | 12 | 1.8 | Yes [w 7] | No | |||||
E:invalid | Invalid | 10.0 [t 6] | 12 | ||||||||
E:in-range | In range | No | 13 | Yes [w 8] | |||||||
E:out-of-range | Out of range | No | 13 | ||||||||
E:required | Required | 10.0 [t 7] | 12 | 2.0 [g 6] | Yes [w 9] | ||||||
E:optional | Optional | 10.0 [t 8] | 12 | ||||||||
E:read-only | Read-only | No | 13 | 78 [g 7] | 530 | Incorrect | Incorrect | ||||
E:read-write | Read and write | No | 13 | ||||||||
E:not(s1, s2) | Negations | No | No | 84 | No | No | No | ||||
E:is(s1, s2) | Matches-any | 82 [g 8] | |||||||||
E:has(s1) | Relational pseudo-class | No | |||||||||
E:dir(ltr) | Directionality | 49 [g 9] | |||||||||
E:lang(zh, *-hant) | Languages | No | |||||||||
E:any-link | Hyperlink | 50.0 [g 10] | |||||||||
E:local-link | Local link | No | |||||||||
E:local-link(0) | Local link | ||||||||||
E:scope | Contextual reference | 32 [g 11] | |||||||||
E:current | Time-dimensional : current | No | |||||||||
E:current(s) | Time-dimensional : current | ||||||||||
E:past | Time-dimensional : past | ||||||||||
E:future | Time-dimensional : future | ||||||||||
E:nth-match(n of selector) | Nth child of | ||||||||||
E:nth-last-match(n of selector) | Nth last child of | ||||||||||
E:column(selector) | Column | ||||||||||
E:nth-column(n) | Nth column | ||||||||||
E:nth-last-column(n) | Nth last column | ||||||||||
E:placeholder-shown | placeholder text | ||||||||||
E:active-drop | will receive the item | ||||||||||
E:valid-drop | could receive the item | ||||||||||
E:invalid-drop | cannot receive the item | ||||||||||
Pseudo-elements | |||||||||||
CSS2 | E:first-letter | First letter | 9.0 | 12 | 1.0 | 85 | Yes | 1.0 | |||
E:first-line | First line | Partial | |||||||||
E:before | Before | 8.0 | 1.9.1 | Partial | |||||||
E:after | After | ||||||||||
selectors-3 | E::before | Double colon notation | 9.0 | 12 | 1.9.1 | Partial | 3.4 | 1.0 | |||
E::after | Double colon notation | ||||||||||
E::first-letter | Double colon notation | 1.5 | 85 | ||||||||
E::first-line | Double colon notation | Partial | |||||||||
css-pseudo-4 | E::marker [spec 5] | list marker | No | No | 68 | No | No | No | |||
E::selection | Selection | 9.0 | 12 | 62 | 412 | 3.4 | 2.1 | ||||
CSS UI pseudo elements | E::value | user interface element fragments [spec 6] | No | No | No | No | No | No | |||
E::choices | |||||||||||
E::repeat-item | |||||||||||
E::repeat-index | |||||||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto |
contenteditable
attribute incorrectly.:active
is only supported on anchor elements.:hover
is only supported on anchor elements..two
class selector was taken into consideration.td
and th
in a table when the attribute is colspan
(regardless of whether any actually have a colspan
attribute). [t 9] This may not actually be a bug, as ambiguity exists in the specification. [t 10] :first-letter
rules with others may be problematic. [t 11] In 8.0, rules with !important
are ignored inside :first-line
and :first-letter
declarations. [t 12] text-transform
doesn't apply with this pseudo-element. [w 10] (:):before/after
— some styles can't be applied to :before
and :after
pseudo-elements, such as animations and transitions. [w 11] MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
---|---|---|---|---|---|---|---|
Cascading and Inheritance | |||||||
css- cascade-3 | all | No | No | 27.0 [g 13] | No | No | No |
Display | |||||||
CSS2 | display | 8.0 | 12 | 1.9 | 85 | Yes | 1.0 |
Earlier draft of css- display-3 | display-inside | No | No | No | No | No | No |
display-outside | |||||||
display-list | |||||||
css- display-3 | box-suppress | ||||||
Box Model [spec 7] | |||||||
CSS2 | margin | 9.0 | 12 | 1.0 | 85 | Yes | 1.0 |
padding | 4.0 | 1.0 | 85 | Yes | |||
width | 4.0 | 1.0 | 85 | Yes | |||
height | 4.0 | 1.0 | 85 | Yes | |||
float | 5.0 | 1.0 | 85 | Yes | |||
clear | 5.0 | 1.0 | 85 | Yes | |||
min-width | 7.0 | 1.0 | Partial | Yes | |||
max-width | 7.0 | 1.0 | Partial | Yes | |||
min-height | 7.0 | 1.7 | Partial | 3.3.2 | |||
max-height | 7.0 | 1.7 | Partial | 3.3.2 | |||
visibility | 9.0 | 1.8 | Partial | Partial | 2.5 | ||
Overflow | |||||||
CSS2 | overflow | 9.0 | 12 | 1.0 | 85 | 3.2 | 1.0 |
css- overflow- 3 | overflow-x | 9.0 | 12 | 1.8 | 525 | 3.5.6 | 2.1 |
overflow-y | |||||||
max-lines | No | No | No | No | No | No | |
Borders | |||||||
CSS2 | border | 4.0 | 12 | 1.0 | 85 | Yes | 1.0 |
border-color | 7.0 | ||||||
border-style | 8.0 | ||||||
border-width | 4.0 | ||||||
border-top | 5.5 | ||||||
border-right | |||||||
border-bottom | |||||||
border-left | |||||||
css- backgrounds-3 | border-radius | 9.0 [t 1] | 12 | 2.0 [g 14] | 533 [w 12] | Experimental | 2.5 |
border-image | 11.0 | 15.0 [g 15] | Experimental | No | 2.5 | ||
border-image-source | 15.0 [g 16] | No | No | ||||
border-image-slice | |||||||
border-image-width | |||||||
border-image-outset | |||||||
border-image-repeat | |||||||
box-shadow | 9.0 [t 13] | 2.0 [g 17] | Yes [w 13] | No | 2.5 | ||
box-decoration-break | No | No | 32.0 [g 19] | No [w 14] | No | 2.7 [p 2] | |
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
Line Layout [spec 8] | |||||||
CSS2 | line-height | 4.0 | 12 | 1.0 | 85 | Yes | 1.0 |
vertical-align | 8.0 | 1.0 | 85 | Yes | |||
Positioning | |||||||
CSS2 | position | 7.0 | 12 | 1.0 | 85 | Yes | 1.0 |
top | 8.0 | 1.0 | 85 | Yes | |||
right | 8.0 | 1.0 | 85 | Yes | |||
bottom | 8.0 | 1.0 | 85 | Yes | |||
left | 8.0 | 1.0 | 85 | Yes | |||
z-index | 8.0 | 1.9 | 85 | Yes | |||
Box Alignment Module | |||||||
css-align-3 | |||||||
align-content | 11.0 | 12 | 28.0 | Experimental | No | No | |
align-items | 20.0 | ||||||
align-self | |||||||
justify-content | |||||||
justify-items | No | No | No | ||||
justify-self | |||||||
Generated and Replaced Content [spec 9] | |||||||
CSS2 | quotes | 8.0 | 12 | Yes | 412 [w 15] | 3.4 | 1.0 |
content | 9.0 [t 14] | 1.9 | Partial | Yes | 2.7 | ||
counter-increment | 8.0 | 1.8 | 525 | 3.4 | 1.0 | ||
counter-reset | 8.0 | 1.8 | 525 | 3.4 | |||
Lists [spec 10] | |||||||
CSS2 | list-style | 4.0 | 12 | 1.0 | 85 | Yes | 1.0 |
list-style-image | 4.0 | 1.0 | 85 | Yes | |||
list-style-position | 4.0 | 1.0 | 85 | Yes | |||
list-style-type | 8.0 | 1.0 | 85 | 3.4 | |||
Colors | |||||||
CSS2 | color | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 |
css-color-3 | opacity | 9.0 [t 1] | 12 | 1.7 | 125 | 4.0 | 2.0 |
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
Backgrounds | |||||||
CSS2 | background | 4.0 | 12 | 1.0 | 85 | Yes | 1.0 |
background-attachment | 7.0 | ||||||
background-color | 4.0 | ||||||
background-image | 8.0 | ||||||
background-position | 8.0 | ||||||
background-repeat | 4.0 | ||||||
css- backgrounds-3 | background (multiple) | 9.0 [t 1] | 12 | 1.9.2 | 312 | 3.5 | 2.5 |
background-clip | 2.0 [g 20] | Yes [w 16] | Experimental | ||||
background-origin | |||||||
background-size | Yes [w 17] | ||||||
Early ideas for css- backgrounds-4 | background-position-x | 8.0 [t 15] | 12 | No | Experimental | No | No |
background-position-y | |||||||
Fonts | |||||||
CSS2 | font | 4.0 | 12 | 1.0 | 85 | Yes | Incorrect |
font-family | 4.0 | 1.0 | 85 | Yes | 1.0 | ||
font-size | 3.0 | 1.0 | 85 | Yes | |||
font-style | 4.0 | 1.0 | 85 | Yes | |||
font-variant | 4.0 | 1.0 | 125 | Yes | |||
font-weight | 8.0 | Partial | Partial | Yes | Incorrect | ||
css-fonts-3 | font-size-adjust | 10.0 [t 16] | 12 | 1.9 | No [w 18] | No | No |
font-stretch | 9.0 [t 1] | 9.0 [g 21] | No [w 19] | No | No | ||
font-feature-settings | 10.0 [t 17] | 34.0 [2] [g 22] | No [w 20] | No | No | ||
font-kerning | No | No | No | No | No | ||
font-language-override | No | No | No | No | |||
font-synthesis | No | No | No | No | |||
font-variant-alternates | No | No | No | No | |||
font-variant-caps | |||||||
font-variant-east-asian | |||||||
font-variant-ligatures | |||||||
font-variant-numeric | |||||||
font-variant-position | |||||||
unicode-range | 9.0 [t 18] | 12 | 38.0 [g 23] | No | No | No | |
Text | |||||||
CSS2 | text-align | 4.0 | 12 | 1.0 | 85 | Yes | 1.0 |
text-decoration | Yes | 1.0 | 85 | Yes | |||
text-indent | 3.0 | 1.0 | 85 | Yes | |||
text-transform | 4.0 | 1.0 | 85 | Yes | |||
letter-spacing | 4.0 | 1.0 | 85 | Yes | |||
word-spacing | 8.0 | 1.0 | 85 | Yes | |||
white-space | 8.0 | 1.9.1 | 522 | Yes | 2.1 | ||
css-text-3 | word-break | Partial | Partial | 15.0 [g 24] | No | No | No |
line-break | 11.0 | 12 | No | No | No | No | |
hyphens | 10.0 [t 19] | 12 | 6.0 [g 25] | Experimental | No | No | |
word-wrap | 5.0 | 12 | 1.9.1 | 85 | 4.3 | 2.5 | |
overflow-wrap | No | No | No [g 26] | No | No | No | |
text-align-last | Partial | Partial | 12.0 [g 27] | No [w 21] | No | No | |
text-justify | 5.5 | 12 | No [g 28] | No | No | No | |
text-emphasis | No | No | No | No | No | No | |
hanging-punctuation | No | No | No | No [w 22] | No | No | |
Early ideas for css- text-4 | hyphenate-character | No | No | No | No | No | No |
hyphenate-limit-zone | 10.0 [t 20] | 12 | |||||
hyphenate-limit-chars | 10.0 [t 21] | 12 | |||||
hyphenate-limit-lines | 10.0 [t 22] | 12 | |||||
hyphenate-limit-last | No | No | |||||
text-space-collapse | |||||||
text-spacing | |||||||
text-wrap | |||||||
Text Decoration | |||||||
css-text- decor-3 | text-shadow | 10.0 [t 23] | 12 | 1.9.1 | Yes | 3.4 | 2.1 |
text-decoration-style | No | No | 36.0 [g 29] [g 30] | No [w 23] | No | No | |
text-decoration-color | No | No | No | No | |||
text-decoration-line | No | No | No | No | |||
text-decoration-skip | No | No | No | No | No | ||
text-underline-position | 11.0 | 12 | No | No | No | No | |
text-emphasis-style | No | No | No | No | No | No | |
text-emphasis-color | |||||||
text-emphasis | |||||||
text-emphasis-position | |||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
Writing Modes | |||||||
CSS2 | direction | 5.0 | 12 | 1.0 | 85 | Yes | 1.0 |
unicode-bidi | 5.0 | 1.0 | 525 | Yes | |||
css- writing- modes-3 | writing-mode | 7.0 [t 24] | 12 | No [g 31] | Nightly Build [w 24] | No | No |
text-combine-horizontal | 11.0 [t 25] | 12.0 | No | No | No | No | |
text-orientation | No | No | No | No | No | No | |
Tables | |||||||
CSS2 | border-collapse | 8.0 | 12 | 1.0 | 125 | Yes | 1.0 |
border-spacing | 8.0 | 1.0 | 125 | Yes | |||
caption-side | 8.0 | 1.4 | 85 | Yes | |||
empty-cells | 8.0 | 1.0 | 125 | Yes | |||
table-layout | 5.0 | 1.0 | 85 | Yes | |||
User interface | |||||||
CSS2 | cursor | 5.5 | 12 | 1.8 | 125 | Yes | Partial |
outline | 8.0 | 1.8 | 125 | Yes | 1.0 | ||
outline-color | 8.0 | 1.8 | 125 | Yes | |||
outline-style | 8.0 | 1.8 | 125 | Yes | |||
outline-width | 8.0 | 1.8 | 125 | Yes | |||
css-ui-3 | outline-offset | No | No | 1.8 | 125 | 3.5 | 2.1 |
box-sizing | 8.0 | 12 | 29.0 [g 32] | Yes [w 25] | 3.3.2 | 1.0 | |
resize | No | No | 2.0 [g 33] | 525 | No | No | |
appearance | No | 12 | Experimental | Experimental | No | No | |
icon | No | No | No | No | No | No | |
nav-index | No | No | No | No | 2.1 | ||
nav-up | No | No | No | No | |||
nav-right | No | No | No | No | |||
nav-down | No | No | No | No | |||
nav-left | No | No | No | No | |||
text-overflow | Partial | Partial | 7.0 [g 34] | Partial | 3.5.6 | Experimental (Nightly) [p 3] | |
Paged media | |||||||
CSS2 | |||||||
page-break-before | 4.0 | 12 | Partial | Partial | 3.5 | 1.0 | |
page-break-after | |||||||
page-break-inside | 8.0 | 19.0 [g 35] | 312 | ||||
orphans | No [g 36] | ||||||
widows | |||||||
css-page-3 | page | No | No | No | No | No | No |
size | No | No [g 37] | No [w 26] | No | 1.0 | ||
image-orientation | No | 26.0 [g 38] | No | No | No | ||
object-fit | No | 36.0 [g 39] | No | No | 2.7 [p 4] | ||
object-position | No | No | No | ||||
Speech | |||||||
css-speech-1 | cue | No | No | No [g 40] | No | No | 1.0 |
cue-after | |||||||
cue-before | |||||||
pause | |||||||
pause-after | |||||||
pause-before | |||||||
speak | Nightly build [w 27] | ||||||
voice-family | No | ||||||
voice-balance | Experimental | ||||||
voice-duration | |||||||
voice-pitch | |||||||
voice-pitch-range | |||||||
voice-rate | |||||||
voice-stress | |||||||
voice-volume | |||||||
interpret-as | |||||||
phonemes | |||||||
rest | No | ||||||
rest-after | |||||||
rest-before | |||||||
mark | |||||||
mark-after | |||||||
mark-before | |||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
Media Queries | |||||||
css3- mediaqueries | width | 9.0 [t 26] | 12 | 1.9.1 | 525 | 4.1 | 2.0 |
height | |||||||
device-width | |||||||
device-height | |||||||
device-aspect-ratio | |||||||
color | 2.5 | ||||||
color-index | |||||||
monochrome | |||||||
resolution | No | ||||||
orientation | 4.2.1 | No | |||||
aspect-ratio | 2.1 | ||||||
grid | 11.0 | Yes | 4.1 | 2.5 | |||
scan | |||||||
Ruby characters | |||||||
css-ruby-1 | ruby-position | No | No | 38.0 [g 41] | No | No | No |
ruby-align | |||||||
ruby-merge | No | ||||||
Multi-column Layout | |||||||
css- multicol-1 | column-count | 10.0 [t 27] | 12 | Experimental [g 42] | Experimental | No | 2.8 [p 5] |
column-width | |||||||
column-gap | |||||||
column-rule | |||||||
columns | 9.0 [g 43] | ||||||
break-before | No [g 44] | Experimental [w 28] | |||||
break-after | |||||||
break-inside | No [w 29] | ||||||
column-fill | 14.0 [g 45] | No | |||||
column-span | No [g 46] | Experimental [w 30] | |||||
Grid layout | |||||||
css- grid-1 | grid | No | No | Experimental [g 47] | Experimental [w 31] | No | No |
grid-template | |||||||
grid-template-columns | |||||||
grid-template-rows | |||||||
grid-template-areas | |||||||
grid-auto-columns | |||||||
grid-auto-rows | |||||||
grid-auto-flow | |||||||
grid-auto-position | |||||||
grid-columns | 10.0 [t 28] | 12 | |||||
grid-columns-start | No | No | |||||
grid-columns-end | |||||||
grid-row | 10.0 [t 29] | 12 | |||||
grid-row-start | No | No | |||||
grid-row-end | |||||||
grid-area | |||||||
Animation | |||||||
css- animations-1 | |||||||
animation | 10.0 [t 30] | 12 | 16.0 [g 48] | Experimental | No | 2.12 | |
animation-delay | |||||||
animation-direction | |||||||
animation-duration | |||||||
animation-iteration-count | |||||||
animation-name | |||||||
animation-play-state | |||||||
animation-timing-function | |||||||
animation-fill-mode | |||||||
Transforms | |||||||
css- transforms- 1 | |||||||
transform | 10.0 [t 31] | 12 | 16.0 | Experimental | No | 2.12 | |
transform-origin | |||||||
transform-style | No | ||||||
perspective | |||||||
perspective-origin | |||||||
backface-visibility | |||||||
Transitions | |||||||
css- transitions-1 | |||||||
transition-property | 10.0 [t 32] | 12 | 16.0 [g 49] | Experimental | No | Experimental | |
transition-duration | |||||||
transition-timing-function | |||||||
transition-delay | |||||||
transition | |||||||
Flexible Box Layout | |||||||
css- flexbox-1 | |||||||
flex | 11.0 | 12 | 22.0 [g 50] | 9.0 [w 32] | No | 2.12 | |
flex-basis | No | ||||||
flex-direction | 2.12 | ||||||
flex-flow | 28.0 | No | |||||
flex-grow | 22.0 | 2.12 | |||||
flex-shrink | No | ||||||
flex-wrap | 28.0 | No | |||||
order | 22.0 | 2.12 | |||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
Regions | |||||||
css- regions-1 | |||||||
flow-into | 10.0 [t 33] | 12 | No [g 51] | Nightly build | No | No | |
flow-from | |||||||
region-fragment | No | No | |||||
break-before | No | No | |||||
break-after | |||||||
break-inside | |||||||
Exclusions | |||||||
css3- exclusions | |||||||
wrap-flow | 10.0 [t 34] | 12 | No [g 52] | Nightly build | No | No | |
wrap-through | |||||||
Shapes | |||||||
css- shapes-1 | |||||||
shape-margin | No | No | No | Nightly build | No | No | |
shape-outside | No | ||||||
shape-image-threshold | |||||||
Masking | |||||||
CSS2 | clip | 8.0 | 12 | 1.0 | 85 | Yes | 1.0 |
css- masking-1 | |||||||
clip-path | No | No | 1.9.1 | No | No | No | |
clip-rule | No | ||||||
mask | No | No | Partial | Partial | Partial | Partial | |
mask-box-image | No | No | No | Experimental | No | No | |
mask-box-image-outset | No | ||||||
mask-box-image-repeat | |||||||
mask-box-image-slice | |||||||
mask-box-image-source | |||||||
mask-box-image-width | |||||||
mask-clip | No | No | No | Experimental | No | No | |
mask-image | |||||||
mask-origin | |||||||
mask-position | |||||||
mask-repeat | |||||||
mask-size | |||||||
mask-type | 20.0 | No | |||||
Compositing and Blending | |||||||
compositing- 1 | |||||||
mix-blend-mode | No | No | 32.0 | No | No | No | |
isolation | 36.0 | ||||||
background-blend-mode | 30.0 | ||||||
Filter Effects | |||||||
filter- effects-1 | |||||||
filter | No | 13 | 35.0 [g 53] | 18.0 [w 33] | No | No | |
flood-color | No | No | No | ||||
flood-opacity | |||||||
color-interpolation-filters | |||||||
lighting-color | |||||||
Pointer events | |||||||
SVG1.1 and earlier draft of css3-ui | pointer-events | 11.0 | 12.0 | 1.9.2 | 530 | No | 2.0 |
pointer- events | touch-action | 11.0 | 12.0 | 29.0 [g 54] | No | No | No |
Line Grid | |||||||
css-line- grid-1 | |||||||
box-snap | No | No | No | No | No | No | |
line-grid | |||||||
line-slack | |||||||
line-snap | |||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
Logical Properties | |||||||
Early ideas for css- logical-1 | |||||||
block-size | No | No | 41.0 [g 55] | No | No | No | |
inline-size | |||||||
min-block-size | |||||||
min-inline-size | |||||||
max-block-size | |||||||
max-inline-size | |||||||
margin-block-start | |||||||
margin-block-end | |||||||
margin-inline-start | |||||||
margin-inline-end | |||||||
offset-block-start | |||||||
offset-block-end | |||||||
offset-inline-start | |||||||
offset-inline-end | |||||||
padding-block-start | |||||||
padding-block-end | |||||||
padding-inline-start | |||||||
padding-inline-end | |||||||
border-block-start-width | |||||||
border-block-end-width | |||||||
border-inline-start-width | |||||||
border-inline-end-width | |||||||
border-block-start-style | |||||||
border-block-end-style | |||||||
border-inline-start-style | |||||||
border-inline-end-style | |||||||
border-block-start-color | |||||||
border-block-end-color | |||||||
border-inline-start-color | |||||||
border-inline-end-color | |||||||
border-block-start | |||||||
border-block-end | |||||||
border-inline-start | |||||||
border-inline-end | |||||||
background-image-transform | No | ||||||
border-image-transform | |||||||
Will Change | |||||||
css-will- change-1 | will-change | No | No | 36.0 | No | No | No |
CSSOM View | |||||||
cssom- view | scroll-behavior (optional [3] ) | No | No | 36.0 | No | No | No |
Scroll Snap Points | |||||||
Early ideas for css- snappoints | scroll-snap-type | 10.0 | 12 | 39.0 [g 56] | No | No | No |
scroll-snap-points-x | |||||||
scroll-snap-points-y | |||||||
scroll-snap-destination | |||||||
scroll-snap-coordinate | |||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto |
inherit
inherits the computation and recomputes it instead of inheriting the computed value. [t 35] none
, block
, inline
, table-header-group
, and table-footer-group
are fully supported. Prior to 8.0, table
are not supported, while inline-block
is only supported on elements that are naturally inline.overflow: visible;
is incorrectly supported. In 8.0, scroll
makes the element's height equal to its max-height
even if the content isn't that tall. [t 36] This has been fixed in IE9.visibility: collapse;
is not supported. In 8.0, inline elements with visibility: visible;
inside block elements with visibility: hidden;
are not visible. [t 37] attr()
values are not updated when the attribute changes. [t 38] transparent
is not supported.hidden
is not supported.dotted
is rendered as dashed
.z-index
is only partially supported. [t 41] In 8.0, floating point values are accepted in addition to integers. [t 42] armenian
, decimal-leading-zero
, georgian
, lower-greek
, lower-latin
, upper-latin
are not supported.fixed
was allowed on the body
element only.text-align
isn't inherited by :before
and :after
pseudo-elements. [t 47] pre
is not supported. Prior to 8.0, white-space
is only partially supported; pre-line
and pre-wrap
are not supported. [t 48] none
value is unsupported prior to 1.9. This property also fails on any normal (non-pseudo-) elements, which it must support according to the CSS3 "Generated and Replaced Content Module" spec.pre-line
is not supported prior to 1.9.1. Prior to 1.9, pre-wrap
was only supported experimentally as -moz-pre-wrap
.collapse
is unsupported prior to 1.8.border-radius
read "tl tr br bl" instead of the W3C's "tr br bl tl". When the border style is dotted or dashed, curves are rendered as solid instead. [g 57] always
and auto
values are supported.always
and auto
values are supported.pre-line
and pre-wrap
are unsupported.collapse
is unsupported prior to 522. Its implementation has the same effect as hidden
and is therefore not compliant. [w 35] none
, open-quote
, close-quote
, no-open-quote
, no-close-quote
and normal
values are unsupported. This property also fails on any normal (non-pseudo-) elements, which it must support according to the CSS3 "Generated and Replaced Content Module" spec.font-size
property does not always accept the value 0, in "font-size: 0px" the text is still visible.scroll
and auto
are unsupported.always
and auto
values were supported.collapse
has the same effect as hidden
and is therefore not compliant.collapse
was unsupported in table columns. On rows, it had the same effect as hidden
and was therefore not compliant.cursor
is ignored with dynamic pseudo-classes and custom cursors are unsupported.none
value was unsupported. [p 6] inherit
should not be allowed together with a font-size value. This should not be parsed, but it's currently done in Opera.MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | ||
---|---|---|---|---|---|---|---|
@counter-style | |||||||
css- counter- styles- 3 | additive-symbols | No | No | No [g 58] | No | No | No |
fallback | |||||||
negative | |||||||
pad | |||||||
prefix | |||||||
range | |||||||
speak-as | |||||||
suffix | |||||||
symbols | |||||||
system | |||||||
@font-face | |||||||
css- fonts- 3 | font-family | Yes | 12 | Yes | Yes | Yes | Yes |
font-feature-settings | |||||||
font-stretch | No | No | No | ||||
font-style | Yes | Yes | Yes | ||||
font-variant | |||||||
font-weight | Partial | Partial | Incorrect | ||||
src | Yes | Yes | Yes | ||||
unicode-range | 36.0 [g 59] | No | No | No | |||
@viewport | |||||||
css- device- adapt-1 | height | 10.0 [t 50] | 12 | No | No | No | 2.7 |
max-height | No | No | No | ||||
min-height | |||||||
width | 10.0 [t 51] | 12 | 2.7 | ||||
max-width | No | No | No | ||||
min-width | |||||||
zoom | 2.7 | ||||||
max-zoom | |||||||
min-zoom | |||||||
user-zoom | |||||||
orientation | No | ||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto | |||
---|---|---|---|---|---|---|---|---|
Numbers [spec 11] | ||||||||
CSS2 | <number> | A floating-point number | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 |
<length> | <number> followed by units | |||||||
<percentage> | <number> followed by % | |||||||
<integer> | An integer | |||||||
css-values-3 | <angle> | <number> angle-unit | 9.0 [t 1] | 12 | Yes | Partial | Partial | Partial |
<time> | <number> time-unit | 2.0 [g 49] | Yes | Yes | 2.5 | |||
<frequency> | <number> frequency-unit | No | No | No | No | |||
<fraction> | Remaining space | No | No | |||||
Strings | ||||||||
CSS2 | <string> | String | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 |
\code | Unicode escapes | 6.0 | ||||||
Functions | ||||||||
CSS2 | rect() | A rectangle | 8.0 | 12 | 1.0 | 85 | Yes | 1.0 |
url() | Uniform Resource Identifier | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 | |
counter() | 8.0 | |||||||
attr() | Attribute identifier | |||||||
css-values-3 | calc() | 9.0 [t 1] | 12 | 16.0 [g 60] | Yes [w 36] | No | No | |
toggle() | Toggling between values | No | No | No [g 61] | No | No | No | |
css- grid-1 ? | repeat() | Repeat n times | No | No | 32.0 [g 62] | No | No | No |
Colors | ||||||||
CSS2 | HTML4 color keywords | 16 predefined web colors | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 |
#rrggbb or #rgb | Hexadecimal notation | |||||||
rgb(r, g, b) | RGB notation | 4.0 | ||||||
system colors [spec 12] | 28 predefined system colors | 3.0 | ||||||
css-color-3 | SVG color keywords | 8.0 | 12 | Yes | Yes | Yes | Yes | |
currentColor | The value of the color property. | 9.0 [t 1] | 1.8 | 528 | Yes | 2.1 | ||
rgba(r, g, b, a) | RGBA notation | 1.9 | 525 | 4.0 | 2.2 | |||
hsl(h, s, l) | HSL notation | 1.5 | 3.5.5 | 2.1 | ||||
hsla(h, s, l, a) | HSLA notation | 1.9 | 3.5.5 | 2.2 | ||||
transparent | Full transparency | 9.0 | 1.9 | 4.0 | Partial | |||
Image values | ||||||||
CSS2 | <url> | Image types | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 |
css- images-3 | <sprite> | No | No | No | No | No | No | |
<image-list> | No | No | No | |||||
<linear-gradient> | 10.0 [t 52] | 12 | 16.0 | Yes | Experimental | |||
<radial-gradient> | ||||||||
linear-gradient() | Color gradients | |||||||
radial-gradient() | ||||||||
repeating-linear-gradient() | ||||||||
repeating-radial-gradient() | ||||||||
css- images-4 | conic-gradient() | No | No | No | No | No | No | |
repeating-conic-gradient() | ||||||||
element() | Reproduce element | No | No | Experimental | No | No | No | |
cross-fade() | Transitioning between images | No | No | No [g 63] | No | No | No | |
image-set() | Resolution negotiation | No | No | No | No | No | No | |
Counter Styles [spec 13] | ||||||||
css- counter- styles-3 | symbols() | Anonymous Counter Styles | No | No | No | No | No | No |
Keywords | ||||||||
CSS2 | auto | Automatically calculated | 6.0 | 12 | 1.0 | 85 | Yes | 1.0 |
inherit | Inherited from the parent | 8.0 | ||||||
css-values-3 | initial | No | 13 | 19.0 | 125 | No | No | |
Units | ||||||||
CSS2 | px | Pixel | 3.0 | 12 | 1.0 | 85 | Yes | 1.0 |
pt | Point | |||||||
pc | Pica | |||||||
cm | Centimetre | |||||||
mm | Millimetre | |||||||
in | inch | |||||||
em | em | |||||||
ex | ex | |||||||
% | Percentage | |||||||
css-values-3 | deg | Degree | 9.0 [t 1] | 12 | 1.9.1 | Yes | Yes | 2.5 |
grad | Grad | |||||||
rad | Radian | |||||||
turn | turn | 13.0 [g 64] | No | No | No | |||
ms | Millisecond | 2.0 [g 65] | Yes | Yes | 2.5 | |||
s | Second | |||||||
Hz | Hertz | No | No | No | No | |||
kHz | Kilohertz | |||||||
dpi | Dots per inch | 12 | 1.9.1 | No | 4.1 | 2.5 | ||
dpcm | Dots per centimetre | |||||||
dppx | Dots per pixel-unit | 16.0 | No | ? | No | |||
earlier draft of css-line- grid-1 | gd | Cells in the layout-grid | No | No | No | No | No | |
unit being considered for css- template- 3 | fr | Remaining space in a series of length values | 12 | No | No | No | No | |
css-values-3 | rem | the font size of the root element | 9.0 [t 1] | 1.9.2 | Yes | No | 2.10.229 [p 7] | |
vw | the viewport's width | 19.0 [g 3] | 28.0 [w 37] | No | No | |||
vh | the viewport's height | |||||||
vmin | equal to the smaller of ‘vw’ or ‘vh’. | No | ||||||
vmax | equal to the larger of ‘vw’ or ‘vh’. | |||||||
ch | the width of the "0" (ZERO, U+0030) glyph found in the font for the font size used to render. | No | 1.9.1 | No | No | No | ||
Filter Effects | ||||||||
filter- effects | ||||||||
grayscale() | No | 13 | 35.0 [g 66] | 18.0 [w 38] | No | No | ||
sepia() | ||||||||
saturate() | ||||||||
hue-rotate() | ||||||||
invert() | ||||||||
opacity() | ||||||||
brightness() | ||||||||
contrast() | ||||||||
blur() | ||||||||
drop-shadow() | ||||||||
Variables | ||||||||
css- variables- 1 | ||||||||
--* | define variable | No | No | 31.0 [g 67] | Experimental [ citation needed ] | No | No | |
var(--*) | use variable | |||||||
MSHTML | EdgeHTML | Gecko | WebKit | KHTML | Presto |
CSS1 introduced the ‘transparent’ value for the background-color property. CSS2 allowed border-color to also accept the ‘transparent’ value. The Open eBook(tm) Publication Structure 1.0.1 [OEB101] extended the ‘color’ property to also accept the ‘transparent’ keyword. CSS3 extends the color value to include the ‘transparent’ keyword to allow its use with all properties that accept a <color> value. This simplifies the definition of those properties in CSS3.
turn
unit is unsupported.rect()
was not supported with the correct syntax using commas.auto
does not work for margin
s, except table elements.transparent
in the color
property will render the text as black.transparent
is not supported on borders (shows as solid black) and is ignored on PNG images.A browser engine is a core software component of every major web browser. The primary job of a browser engine is to transform HTML documents and other resources of a web page into an interactive visual representation on a user's device.
KHTML is a browser engine developed by the KDE project. It is the default engine of the Konqueror browser, but it has not been actively worked on since 2016. Moreover, KHTML will be discontinued for KDE Frameworks 6.
MSHTML is a proprietary browser engine for the Microsoft Windows version of Internet Explorer, developed by Microsoft.
about is an internal URI scheme implemented in various Web browsers to reveal internal state and built-in functions. It is an IANA officially registered scheme, and is standardized.
This article compares HTML support by several browser engines.
The following tables compare XML compatibility and support for a number of browser engines.
This article compares graphics support for several browser engines.
The following tables compare Document Object Model (DOM) compatibility and support for a number of JavaScript engines used in web browsers.
In computing, quirks mode is a technique used by some web browsers for the sake of maintaining backward compatibility with web pages designed for old web browsers instead of strictly complying with W3C and IETF standards in standards mode.
A CSS hack is a coding technique used to hide or show CSS markup depending on the browser, version number, or capabilities. Browsers have different interpretations of CSS behavior and different levels of support for the W3C standards. CSS hacks are sometimes used to achieve consistent layout appearance in multiple browsers that do not have compatible rendering. Most of these hacks do not work in modern versions of the browsers, and other techniques, such as feature support detection, have become more prevalent.
The following tables compare SVG compatibility and support for a number of browser engines.
The Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model (DOM) and JavaScript.
Internet Explorer 9 or IE9 is a web browser for Windows. It was released by Microsoft on March 14, 2011, as the ninth version of Internet Explorer and the successor to Internet Explorer 8, and can replace previous versions of Internet Explorer on Windows Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2 but unlike version 8, this version does not support Windows XP and Windows Server 2003. It and older versions of Internet Explorer are no longer supported. Microsoft released Internet Explorer 9 as a major out-of-band version that was not tied to the release schedule of any particular version of Windows, unlike previous versions. It is the first version of Internet Explorer not to be bundled with a Windows operating system, although some OEMs have installed it with Windows 7 on their PCs, as well as new Windows 7 laptops.
Web typography refers to the use of fonts on the World Wide Web. When HTML was first created, font faces and styles were controlled exclusively by the settings of each web browser. There was no mechanism for individual Web pages to control font display until Netscape introduced the font
element in 1995, which was then standardized in the HTML 3.2 specification. However, the font specified by the font
element had to be installed on the user's computer or a fallback font, such as a browser's default sans-serif or monospace font, would be used. The first Cascading Style Sheets specification was published in 1996 and provided the same capabilities.
CSS animations is a proposed module for Cascading Style Sheets that allows the animation of HTML document elements using CSS.
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.
The Web Open Font Format (WOFF) is a font format for use in web pages. WOFF files are OpenType or TrueType fonts, with format-specific compression applied and additional XML metadata added. The two primary goals are first to distinguish font files intended for use as web fonts from fonts files intended for use in desktop applications via local installation, and second to reduce web font latency when fonts are transferred from a server to a client over a network connection.
This article compares web typography support for several browser engines.
In web development, the CSS box model refers to how HTML elements are modeled in browser engines and how the dimensions of those HTML elements are derived from CSS properties. It is a fundamental concept for the composition of HTML webpages. The guidelines of the box model are described by web standards World Wide Web Consortium (W3C) specifically the CSS Working Group. For much of the late-1990s and early 2000s there had been non-standard compliant implementations of the box model in mainstream browsers. With the advent of CSS2 in 1998, which introduced the box-sizing
property, the problem had mostly been resolved.