Comparison of layout engines (HTML)
From Wikipedia, the free encyclopedia
| HTML |
|---|
|
Character encodings |
The following tables compare HTML 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.
Only HTML 4 and XHTML 1 served as text/html (so called "HTML compatible" XHTML) are considered. XHTML 2 is not considered as it is a redefinition of XHTML, which is not backward compatible. For more XHTML-related comparisons, please refer to comparison of layout engines (XHTML).
Version number, if possible, is provided for feature that is fully supported (based on HTML 4.01). Proprietary extensions are not included.
| Layout Engine | Used By |
|---|---|
| Trident | Internet Explorer |
| Tasman | Internet Explorer for Mac |
| Gecko | All Mozilla software, including Firefox; GNOME's Galeon |
| WebCore | Mac OS X (Safari) |
| KHTML | KDE |
| Presto | Opera |
| iCab | iCab |
The way that the engines determine standards mode, quirks mode, or almost standards mode.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |||
|---|---|---|---|---|---|---|---|---|---|
| XHTML 1.1 | |||||||||
| Strict | Standards | ? | Standards | ? | Standards | Standards | ? | ||
| XHTML 1.0 | |||||||||
| Strict | Standards | ? | Standards | Standards | Standards | Standards | ? | ||
| Transitional | Standards | ? | Almost | Standards | Standards | Standards | ? | ||
| Frameset | Standards | ? | Almost | ? | Standards | Standards | ? | ||
| HTML 4.01 | |||||||||
| Strict | Standards | ? | Standards | Standards | Standards | Standards | ? | ||
| Standards | ? | Standards | Standards | Standards | Standards | ? | |||
| Transitional | Standards | Standards | Almost | Standards | Standards | Standards | ? | ||
| Quirks | Quirks | Quirks | Quirks | Quirks | Quirks | ? | |||
| Frameset | Standards | ? | Almost | ? | Standards | Standards | ? | ||
| Quirks | ? | Quirks | ? | Quirks | Quirks | ? | |||
| HTML 4.0 | |||||||||
| Strict | Standards | Standards | Standards | ? | Standards | Standards | ? | ||
| Standards | Quirks | Standards | Standards | Standards | Standards | ? | |||
| Transitional | Standards | ? | Quirks | ? | Quirks | Standards | ? | ||
| Quirks | ? | Quirks | ? | Quirks | Quirks | ? | |||
| Frameset | Standards | ? | Quirks | ? | Quirks | Standards | ? | ||
| Quirks | ? | Quirks | ? | Quirks | Quirks | ? | |||
- Quirks mode — Emulates non-standard behaviors in Navigator 4 and MSIE. Generally used in HTML without DOCTYPE and HTML 3 or below. The amount of emulation differs between the layout engines, e.g. Gecko and Presto use the standardized W3C box layout model even in quirks mode. Thus the results are quite unpredictable in this mode.
- Standards mode — Follows W3C's recommendations.
- Almost standards mode — Implements the vertical sizing of table cells traditionally and not rigorously according to the CSS2 specification. Almost standards mode was created after 1.0 and 1.1alpha, but before 1.0.1 and 1.1beta. This mode is, however, similar to the standard modes of Trident, Presto and WebCore. Before almost standards mode was created these DOCTYPEs triggered standards mode.
The global structure of the document.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Basic structure | |||||||
| html | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| head | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| body | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Metadata | |||||||
| title | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| meta | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Headings | |||||||
| h1 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| h2 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| h3 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| h4 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| h5 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| h6 | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Grouping elements | |||||||
| div | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| span | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Elements that represent text.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Phrase | |||||||
| em | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| strong | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| dfn | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| code | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| samp | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| kbd | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| var | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| cite | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| abbr | 7.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| acronym | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Quotations | |||||||
| blockquote | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| q | No | Yes | 1.8 | Yes | Yes | 7.0 | Yes |
| Subscripts and superscripts | |||||||
| sub | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| sup | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Lines and paragraphs | |||||||
| p | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| pre | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| br | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Marking document changes | |||||||
| ins | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| del | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
- q — Does not support nested quotes prior to 1.8 [1].
Elements that represent lists of information.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Unordered and ordered lists | |||||||
| ul | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| ol | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| li | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Definition lists | |||||||
| dl | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| dt | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| dd | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Elements that represent tabular information.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Basic table elements | |||||||
| table | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| caption | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| tr | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| th | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| td | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Row groups | |||||||
| thead | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| tfoot | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | ? |
| tbody | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Column groups | |||||||
| colgroup | 4.0 | ? | 1.0 | Yes | Yes | 7.0 | Yes |
| col | 4.0 | ? | 1.0 | Yes | Yes | 7.0 | Yes |
Hyperlinks, one of the primary forces driving the success of the World Wide Web.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| a | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| link | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| base | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Multimedia features including images, applets , video clips, and other HTML documents.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Images | |||||||
| img | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Generic inclusion | |||||||
| object | Incorrect | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| param | 6.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Image maps | |||||||
| map | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| area | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Deprecated | |||||||
| applet | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
- object — For images, a frame will be added to the object. Other content types are not supported and the element is incorrectly implemented as an ActiveX wrapper. Nested objects fallback mechanism is not supported prior to version 7. [2] [3]
Elements to present documents in multiple views, which may be independent windows or subwindows. Frame layout is only available in the frameset profiles. All frames are not available in XHTML 1.1 (use generic object elements instead for inline frames).
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Frame layout | |||||||
| frameset | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| frame | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| noframes | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Inline frames | |||||||
| iframe | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
The user interface controls for interacting with the web server.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Basic structure | |||||||
| form | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| fieldset | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| legend | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Form controls and labels | |||||||
| input | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| textarea | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| button | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| label | 4.0 | Yes | 1.0 | Yes | 3.4.2 | 7.0 | Yes |
| List boxes (combo boxes) | |||||||
| select | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| optgroup | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| option | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
- label — Label is focusable prior to 3.4.2.
- button — Button's value attribute is not supported. Button's innerHTML/CDATA is returned instead.
Elements that specify presentational information. Although not all elements are deprecated, their use is discouraged in favor of stylesheets. Deprecated elements are not available in the strict profiles and XHTML 1.1.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Font styles | |||||||
| b | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| i | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| big | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| small | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| tt | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Horizontal rules | |||||||
| hr | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Deprecated | |||||||
| u | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| s | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| strike | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
The ways to apply stylesheets (CSS) to the document.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Using link element | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| style | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Elements for embedding client-side script (JavaScript). See also DOM Events for a list of attributes used to attach an event handler to an element.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| script | 6.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
Elements related to language information.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| bdo | 5.0 | ? | 1.0 | Yes | Partial | 7.0 | ? |
- bdo — While alphabetic and alphanumeric words are affected, numeric (numbers only) words are not.
Attributes that can be used in any elements.
| Trident | Tasman | Gecko | WebCore | KHTML | Presto | iCab | |
|---|---|---|---|---|---|---|---|
| Element identifiers | |||||||
| id | 3.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| class | 3.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Inline styles | |||||||
| style | 3.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Advisory information | |||||||
| title | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| Language information | |||||||
| lang | 4.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
| dir | 5.0 | Yes | 1.0 | Yes | Yes | 7.0 | Yes |
- MSDN Library. CSS Enhancements in Internet Explorer 6. Retrieved on May 1, 2005.
- Mozilla Developer Documentation. Mozilla's DOCTYPE sniffing. Retrieved on May 1, 2005.
- Opera Documentation. The Opera 7 and 8 DOCTYPE Switches. Retrieved on May 1, 2005.
- Opera Documentation. Specification support - HTML. Retrieved on May 1, 2005.
- O'Reilly Network. Use the Right Doctype. Retrieved on May 1, 2005.
- Apple Developer Connection. Safari HTML Reference. Retrieved on July 14, 2005.
- webref.info HTML Reference
- Activating the Right Layout Mode Using the Doctype Declaration
- Doctypes and their respective layout mode
- HTML Support History
- Web browser HTML support
- W3Schools XHTML 1.0 Reference
|
|
|
|---|---|
| List of layout engines | Trident · Presto · Gecko · Tasman · WebCore · KHTML · iCab · Prince · GtkHTML · Gzilla · Boxely · Tkhtml · Robin |
| Comparison of layout engines | HTML · XML · XHTML · Graphics · CSS · DOM · HTML 5 · ECMAScript · SVG |