Comparison of layout engines (CSS) |
The following tables compare Cascading Style Sheets compatibility and support for a number of layout engines. Please see the individual products articles for further information. This article is not all-inclusive or necessarily up-to-date. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.
Version number, if possible, is provided for feature that is fully supported (based on CSS2.1, unless it is a CSS3 feature). Proprietary extensions are not included.
=General overview=
=Grammar and rules=
== Trident grammar and rule notes ==
# @font-face — Only supports Embedded OpenType (.eot) font format, does not understand the format() identifier.
== Tasman grammar and rule notes ==
# @font-face — Versions 5.16 and 5.17 will download fonts specified but not use them. 5.23 no longer downloads the font.
== Presto grammar and rule notes ==
# @import — Whilst Gecko, WebCore and iCab download all media stylesheets immediately, Opera only downloads handheld, print, projection and screen media. Text browser emulation mode is only a user stylesheet, so it does not switch to tty media type. This is consistent with older text browsers, which do not respect any CSS.
= Selectors =
== Trident selector notes ==
# :hover — Prior to 7.0 Beta 2, :hover is for anchor element only.
== Tasman selector notes ==
# :hover — For anchor element only.
== WebCore selector notes ==
# :hover — Fails to trigger when over table rows which are outside a table cell s boundary or when over empty table cells. Fails to trigger when :link:hover or :visited:hover are used. (CSS2, :hover is not longer mutually exclusive with :link and :visited.) # :target — Style doesn t get applied when navigating using back and forward buttons. # :last-child — will trigger for every child element which matches the node selector chain prior to :last-child . # :only-child — behaves the same as :firstchild. # :: pseudo-element — Mistakenly also triggers on :: pseudo-class on builds up to version 412.0 (subsequently fixed).
= Properties =
== Trident property notes ==
# border-style — dotted is rendered as dashed. # display — Only none, block, inline, table-header-group, and table-footer-group are supported. # position — Prior to 7.0 Beta 2, fixed positioning is not supported. # background-attachment — Prior to 7.0 Beta 2, background-attachment is for body element only. # background-position — Fixed positioning is not supported. # font-weight — Incorrect rendering when font-weight is 600 [http://www.quirksmode.org/css/tests/iewin_fontweight.html]. # text-decoration — blink is not supported.
== Gecko property notes ==
# display — run-in [https://bugzilla.mozilla.org/show_bug.cgiid=2056], inline-table [https://bugzilla.mozilla.org/show_bug.cgiid=18217], and inline-block [https://bugzilla.mozilla.org/show_bug.cgiid=9458] are not supported. # content — Only works with :before and :after. Only support image . does not work prior to 1.8 [https://bugzilla.mozilla.org/show_bug.cgiid=215083]. # background-position — Problem handling a combination of keyword value and pixel or percentage value. [http://www.quirksmode.org/css/backgroundposition.html] # font-size-adjust — Supported in Windows only [https://bugzilla.mozilla.org/show_bug.cgiid=130473]. # white-space — pre-line is not supported. pre-wrap is only supported experimentally as -moz-pre-wrap;. # visibility — collapse is not supported prior to 1.8. # border-radius — border curves are circular, but the W3C specs [http://www.w3.org/TR/css3-background/#the-border-radius] define them as elliptical. Dashed curves are not available. Short-cut definitions for border-radius read tl tr br bl instead of the W3C s tr br bl tl . Interesting bugs: [https://bugzilla.mozilla.org/show_bug.cgiid=24998] [https://bugzilla.mozilla.org/show_bug.cgiid=16380] [https://bugzilla.mozilla.org/show_bug.cgiid=13944]
== WebCore property notes ==
# cursor — Custom cursors are not supported. # font — The system fonts are not supported. # font-variant — All supported from version 85 except small-caps, which was added in version 125. # min-width; max-width — All supported except for positioned elements. Positioned element support has been implemented in an unreleased version of WebCore. # page-break-before; page-break-after — Only the always and auto values are supported. # text-decoration — Optional property blink is not supported. # white-space — pre-line and pre-wrap are not supported. # text-shadow — Multiple shadows are not supported. # visibility — All supported except for collapse.
== KHTML property notes ==
# khtml_overflow — Values scroll and auto are unsupported. # page-break-before; page-break-after — Only the always and auto values are supported. # text-decoration — Optional property blink is not supported. # visibility — All supported except for collapse.
== Presto property notes ==
# list-style-type — The CSS2 values are not supported prior to 8.0. # counter-increment, counter-reset — Implemented the algorithm in REC CSS2. # background-position — Problem handling a combination of keyword value and pixel or percentage value. [http://www.quirksmode.org/css/backgroundposition.html] # font-weight — Incorrect rendering when font-weight is 600 [http://www.quirksmode.org/css/tests/iewin_fontweight.html]. # white-space — pre-line is not supported. # visibility — All supported except for collapse.
== iCab property notes ==
# display — run-in is not supported. # text-align — justify is not supported. # visibility — collapse only partial. # caption-side — top and bottom only. # empty-cells — Compresses hidden rows but does not hide them completely.
== CSS2 aural style sheets notes ==
# The aural style sheets introduced in CSS2 are deprecated in CSS2.1 [http://www.w3.org/TR/CSS21/aural.html]. The only know software that supports CSS2 Aural is does not respect Aural CSS instructions. The CSS3 Speech module reuses some, but not all, of the properties.
=Values and units=
==Trident value and unit notes==
# auto — Does not work for margins.
==Presto value and unit notes==
# attr() — As all URI attribute values are resolved to full URI, the value could be wrong if attr() is used on an attribute that contains relative URI. # em — Quantization error for values greater than 20.47em [http://www.brunildo.org/test/emarg.pl]. # % — Floating point numbers are treated as integers when used in percentages.
=General notes=
==Gecko general notes==
# -moz- — All experimental (and proprietary) selectors, properties and values are prefixed with -moz- , e.g. ::-moz-selection instead of ::selection [http://xulplanet.com/references/elemref/ref_StyleProperties.html].
==WebCore general notes==
# -apple- — All proprietary selectors, properties and values are prefixed with -apple- , e.g. -apple-aqua.
== KHTML general notes ==
# -khtml- — All experimental (and proprietary) selectors, properties and values are prefixed with -khtml- , e.g. -khtml-arabic-indic.
==Presto general notes==
# -o- — All proprietary selectors, properties and values are prefixed with -o- , e.g. -o-replace. # -wap- — All proprietary selectors, properties and values for Wireless CSS are prefixed with -wap- , e.g. -wap-accesskey. # -xv- — All new selectors, properties and values introduced by CSS3 Speech Module are prefixed with -xv- (but not found in CSS2 aural style sheets), e.g. -xv-interpret-as instead of interpret-as.
=References=
* * * * * * *
=See also=
*Comparison of layout engines
=External links=
*[http://nanobox.chipx86.com/browser_support.php Web browser standards support] by David Hammond *[http://www.quirksmode.org/css/contents.html CSS contents and browser compatibility] *[http://www.blooberry.com/indexdot/css/supportkey/syntax.htm CSS specification/browser support page: General Syntax] *[http://www.macedition.com/cb/resources/ MacEdition CSS Guides] *[http://www.jessett.com/web_sites/css/css_browser_support.shtml browser support for css1 & css2] *[http://f57.aaa.livedoor.jp/~motohiko/CSS/css2.1.html Third-party Mozilla support chart] *[http://w3development.de/css/assigning_external_css/ Assigning external CSS]|
|